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> 




rowname