r - आर में रो नाम और स्तंभ नाम
columnname rowname (3)
और एक और विस्तार:
# create dummy matrix
set.seed(10)
m <- matrix(round(runif(25, 1, 5)), 5)
d <- as.data.frame(m)
यदि आप नए कॉलम नाम असाइन करना चाहते हैं, जो आप data.frame
पर कर सकते हैं। data.frame
:
# an identical effect can be achieved with colnames()
names(d) <- LETTERS[1:5]
> d
A B C D E
1 3 2 4 3 4
2 2 2 3 1 3
3 3 2 1 2 4
4 4 3 3 3 2
5 1 3 2 4 3
यदि आप, matrix
पर पिछले आदेश चलाते हैं, तो आप गड़बड़ कर लेंगे:
names(m) <- LETTERS[1:5]
> m
[,1] [,2] [,3] [,4] [,5]
[1,] 3 2 4 3 4
[2,] 2 2 3 1 3
[3,] 3 2 1 2 4
[4,] 4 3 3 3 2
[5,] 1 3 2 4 3
attr(,"names")
[1] "A" "B" "C" "D" "E" NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[20] NA NA NA NA NA NA
चूंकि मैट्रिक्स को दो-आयामी वेक्टर के रूप में माना जा सकता है, तो आप केवल पहले पांच मानों को नाम देते हैं (आप ऐसा नहीं करना चाहते हैं, है ना?)। इस मामले में, आपको colnames()
साथ रहना चाहिए
इसलिए वहाँ...
क्या निम्न फ़ंक्शन जोड़े वास्तव में एक ही परिणाम उत्पन्न करते हैं?
जोड़ी 1) names()
और colnames()
जोड़ी 2) rownames()
और row.names()
डिर्क के उदाहरण पर थोड़ा विस्तार करने के लिए:
यह एक डेटा फ्रेम को बराबर लम्बी वैक्टर के साथ सूची के रूप में सोचने में मदद करता है शायद यही कारण है कि names
एक डेटा फ्रेम के साथ काम करता है लेकिन मैट्रिक्स नहीं।
अन्य उपयोगी फ़ंक्शन dimnames
जो हर आयाम के लिए नाम देता है। आप देखेंगे कि rownames
वास्तव में वास्तव में dimnames
से पहले तत्व देता है।
rownames
और row.names
बारे में: मैं अंतर नहीं बता सकता, हालांकि rownames
का उपयोग करता है जबकि row.names
आर के बाहर लिखा गया था। वे दोनों उच्च आयामी arrays के साथ काम करने लगते हैं:
>a <- array(1:5, 1:4)
> a[1,,,]
> rownames(a) <- "a"
> row.names(a)
[1] "a"
> a
, , 1, 1
[,1] [,2]
a 1 2
> dimnames(a)
[[1]]
[1] "a"
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
जैसा कि ऑस्कर वाइल्ड ने कहा
संकल्प unimaginative की अंतिम शरण है
आर डिज़ाइन की गई भाषा के बजाय विकसित की अधिक है, इसलिए ये बातें होती हैं। names()
और colnames()
एक data.frame
पर काम करते हैं लेकिन names()
एक मैट्रिक्स पर काम नहीं करता है:
R> DF <- data.frame(foo=1:3, bar=LETTERS[1:3])
R> names(DF)
[1] "foo" "bar"
R> colnames(DF)
[1] "foo" "bar"
R> M <- matrix(1:9, ncol=3, dimnames=list(1:3, c("alpha","beta","gamma")))
R> names(M)
NULL
R> colnames(M)
[1] "alpha" "beta" "gamma"
R>