त्रुटि कैसे ठीक करें: "डेटा" एक डेटाफ़्रेम या अन्य ऑब्जेक्ट होना चाहिए जिसे "फ़ोर्टिफ़ाई ()" द्वारा लागू किया जा सके, संख्यात्मक वेक्टर नहीं


R में आपके सामने एक त्रुटि आ सकती है:

 Error: `data` must be a data frame, or other object coercible by `fortify()`,
        not a digital vector

यह त्रुटि तब होती है जब आप डेटा फ्रेम में वेरिएबल्स को प्लॉट करने के लिए ggplot2 का उपयोग करने का प्रयास करते हैं, लेकिन आप डेटा तर्क के लिए डेटा फ्रेम के बजाय एक वेक्टर का संदर्भ देते हैं।

यह ट्यूटोरियल सटीक रूप से बताता है कि इस त्रुटि को कैसे ठीक किया जाए।

त्रुटि को पुन: उत्पन्न कैसे करें

मान लीजिए कि हमारे पास R में निम्नलिखित डेटा फ़्रेम है:

 #create data frame
df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8),
                 y=c(4, 8, 14, 19, 14, 13, 9, 9))

#view data frame
df

  xy
1 1 4
2 2 8
3 3 14
4 4 19
5 5 14
6 6 13
7 7 9
8 8 9

अब मान लीजिए कि हम डेटा फ़्रेम में x और y वेरिएबल्स को देखने के लिए एक स्कैटरप्लॉट बनाने का प्रयास कर रहे हैं:

 library (ggplot2)

#attempt to create scatter plot
ggplot(df$x, aes(x=x, y=y)) +
    geom_point()

Error: `data` must be a data frame, or other object coercible by `fortify()`,
        not a digital vector

हमें एक त्रुटि प्राप्त हो रही है क्योंकि हमने डेटा तर्क में डेटा फ्रेम के बजाय ggplot() फ़ंक्शन में एक संख्यात्मक वेक्टर ( df$x ) को संदर्भित किया है।

त्रुटि को कैसे ठीक करें

इस त्रुटि को ठीक करने का तरीका ggplot() फ़ंक्शन में डेटा तर्क के लिए डेटा फ़्रेम को संदर्भित करना है।

हमारे उदाहरण में, हमें डेटा तर्क के लिए df$x के बजाय df का उपयोग करना चाहिए:

 library (ggplot2)

#create scatterplot
ggplot(df, aes(x=x, y=y)) +
    geom_point()

ध्यान दें कि इस बार हम बिना किसी त्रुटि के सफलतापूर्वक पॉइंट क्लाउड बनाने में सक्षम हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य त्रुटियों को कैसे हल किया जाए:

कैसे ठीक करें: ggplot2 नहीं जानता कि असमान वर्ग डेटा को कैसे संभालना है
कैसे ठीक करें: स्ट्रिपचार्ट.डिफॉल्ट (x1,…) में त्रुटि: अमान्य प्लॉटिंग विधि
कैसे ठीक करें: eval में त्रुटि (predvars, data, env): ऑब्जेक्ट ‘x’ नहीं मिला

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *