समस्या का समाधान कैसे करें: "कॉलम नाम" सेट करने का प्रयास करें; दो से कम आयाम वाली किसी वस्तु पर
R का उपयोग करते समय आपके सामने एक त्रुटि संदेश आ सकता है:
Error in `colnames<-`(`*tmp*`, value = c("var1", "var2", "var3")): attempt to set 'colnames' on an object with less than two dimensions
यह त्रुटि आम तौर पर तब होती है जब आप किसी ऐसे ऑब्जेक्ट पर कॉलम नाम सेट करने के लिए colnames() फ़ंक्शन का उपयोग करने का प्रयास करते हैं जो डेटा फ़्रेम या मैट्रिक्स नहीं है।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस त्रुटि को कैसे हल किया जाए।
त्रुटि को पुन: उत्पन्न कैसे करें
मान लीजिए कि हमारे पास R में निम्नलिखित डेटा फ़्रेम है:
#create data frame
df <- data. frame (team=c('A', 'A', 'C', 'B', 'C', 'B', 'B', 'C', 'A'),
points=c(12, 8, 26, 25, 38, 30, 24, 24, 15),
rebounds=c(10, 4, 5, 5, 4, 3, 8, 18, 22))
#view data frame
df
team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22
अब मान लीजिए कि हम डेटा फ़्रेम के अंत में एक नई लाइन जोड़ने का प्रयास करते हैं:
#define new row to add to end of data frame
new_row <- c('D', 15, 11)
#attempt to define column names for new row
colnames(new_row) <- colnames(df)
Error in `colnames<-`(`*tmp*`, value = c("team", "points", "rebounds")):
attempt to set 'colnames' on an object with less than two dimensions
हमें एक त्रुटि प्राप्त हो रही है क्योंकि हमने डेटाफ़्रेम या मैट्रिक्स के बजाय वेक्टर पर colnames() फ़ंक्शन का उपयोग किया है।
त्रुटि को कैसे ठीक करें
इस त्रुटि से बचने के लिए, हमें यह सुनिश्चित करना होगा कि हम डेटा फ़्रेम के साथ colnames() फ़ंक्शन का उपयोग करें:
उदाहरण के लिए, हम डेटा फ़्रेम के अंत में एक नई लाइन जोड़ने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं
#define new row to add to end of data frame
new_row <- data. frame ('D', 15, 11)
#define column names for new row
colnames(new_row) <- colnames(df)
#add new row to end of data frame
df <- rbind(df, new_row)
#view updated data frame
df
team points rebounds
1 to 12 10
2 to 8 4
3 C 26 5
4 B 25 5
5 C 38 4
6 B 30 3
7 B 24 8
8 C 24 18
9 to 15 22
10 D 15 11
इस बार हमें कोई त्रुटि नहीं मिली क्योंकि हमने वेक्टर के बजाय डेटा फ़्रेम के कॉलम नाम सेट करने के लिए colnames() फ़ंक्शन का उपयोग किया था।
फिर हम मौजूदा डेटा फ्रेम के अंत में नई लाइन को बांधने के लिए rbind() का सफलतापूर्वक उपयोग कर सकते हैं।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
आर में कैसे ठीक करें: तर्कों में अलग-अलग संख्या में लाइनें शामिल होती हैं
आर में कैसे ठीक करें: अप्रयुक्त तर्कों को चुनने में त्रुटि
आर में मरम्मत कैसे करें: प्रतिस्थापन की लंबाई शून्य है