कैसे ठीक करें: परिणाम में पंक्तियों की संख्या वेक्टर लंबाई की गुणज नहीं है (arg 1)
R का उपयोग करते समय आपके सामने एक चेतावनी संदेश आ सकता है:
Warning message: In cbind(A, B, C): number of rows of result is not a multiple of vector length (arg 1)
यह चेतावनी आम तौर पर तब होती है जब आप विभिन्न लंबाई के वैक्टरों के कॉलम को एक साथ बांधने के लिए cbind() फ़ंक्शन का उपयोग करने का प्रयास करते हैं।
यह ध्यान दिया जाना चाहिए कि यह संदेश केवल एक चेतावनी है और आपका कोड चलता रहेगा, लेकिन आपको मिलने वाले परिणाम आपकी अपेक्षा से भिन्न हो सकते हैं।
निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस चेतावनी से कैसे बचा जाए।
चेतावनी को पुन: कैसे प्रस्तुत करें
मान लीजिए कि हम डेटा फ्रेम में तीन वैक्टरों को एक साथ कॉलम में बांधने के लिए cbind() फ़ंक्शन का उपयोग करते हैं:
#define three vectors with different lengths
A = c(4, 2, 3, 6)
B = c(9, 1, 8, 7, 0, 7)
C = c(3, 5, 3, 3, 6, 4)
#column bind three vectors into data frame
df <- cbind(A, B, C)
#view data frame
df
Warning message:
In cbind(A, B, C):
number of rows of result is not a multiple of vector length (arg 1)
ABC
[1,] 4 9 3
[2,] 2 1 5
[3,] 3 8 3
[4,] 6 7 3
[5,] 4 0 6
[6,] 2 7 4
Cbind फ़ंक्शन सभी तीन वैक्टरों के साथ काम करता है, लेकिन ध्यान रखें कि पहले वेक्टर के मान बस बार-बार दोहराए जाते हैं।
इसे आर में “रीसाइक्लिंग” कहा जाता है।
चेतावनी से कैसे बचें
इस चेतावनी से पूरी तरह बचने के लिए, हमें यह सुनिश्चित करना होगा कि हमारे द्वारा उपयोग किए जाने वाले प्रत्येक वेक्टर की लंबाई समान हो।
इसे प्राप्त करने का एक तरीका सबसे छोटे वेक्टर में लापता मानों को NA मानों के साथ निम्नानुसार भरना है:
#calculate max length of vectors
max_length <- max(length(A), length(B), length(C))
#set length of each vector equal to max length
length(A) <- max_length
length(B) <- max_length
length(C) <- max_length
#cbind the three vectors together into a data frame
df <- cbind(A, B, C)
#view data frame
df
ABC
[1,] 4 9 3
[2,] 2 1 5
[3,] 3 8 3
[4,] 6 7 3
[5,] NA 0 6
[6,] NA 7 4
ध्यान दें कि इस बार हमें कोई चेतावनी संदेश नहीं मिलता है और छोटे वेक्टर मानों को केवल NA मानों के साथ जोड़ा जाता है ताकि यह सुनिश्चित किया जा सके कि हमारे द्वारा उपयोग किए गए तीन वैक्टरों में से प्रत्येक की लंबाई समान है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य त्रुटियों को कैसे ठीक किया जाए:
आर में कैसे ठीक करें: तर्कों में अलग-अलग संख्या में लाइनें शामिल होती हैं
आर में कैसे ठीक करें: अप्रयुक्त तर्कों को चुनने में त्रुटि
आर में मरम्मत कैसे करें: प्रतिस्थापन की लंबाई शून्य है