आर

2011-04-05 9 views
67

में किसी मौजूदा डेटा फ्रेम में पंक्तियों में पंक्तियों में पंक्तियों में कनवर्ट करें, मैं मौजूदा डेटा फ्रेम के कॉलम में मानों को पंक्ति नामों में रूपांतरित करना चाहता हूं। डेटा फ्रेम निर्यात किए बिना ऐसा करना संभव है और फिर इसे row.names = कॉल के साथ पुनः आयात करना संभव है?आर

में
> samp 
    names Var.1 Var.2 Var.3 
1  A  1  5  0 
2  B  2  4  1 
3  C  3  3  2 
4  D  4  2  3 
5  E  5  1  4 

:

उदाहरण के लिए मैं कन्वर्ट करने के लिए चाहते हैं

> samp.with.rownames 
    Var.1 Var.2 Var.3 
A  1  5  0 
B  2  4  1 
C  3  3  2 
D  4  2  3 
E  5  1  4 

धन्यवाद

उत्तर

92

यह करना चाहिए:

तो संक्षेप में, कोई वहाँ
samp2 <- samp[,-1] 
rownames(samp2) <- samp[,1] 

फिर से कोई विकल्प नहीं है बताए।

संपादित करें: अपने आप को ठीक, एक भी जगह में यह कर सकते हैं: rowname विशेषताओं दें और इसके बाद हटाने स्तंभ:

R> df<-data.frame(a=letters[1:10], b=1:10, c=LETTERS[1:10]) 
R> rownames(df) <- df[,1] 
R> df[,1] <- NULL 
R> df 
    b c 
a 1 A 
b 2 B 
c 3 C 
d 4 D 
e 5 E 
f 6 F 
g 7 G 
h 8 H 
i 9 I 
j 10 J 
R> 
+2

> rownames (DF) <- 'row.names में df [, 1] त्रुटि <- data.frame' (' * tmp * ', मान = मूल्य):। अवैध 'row.names 'लंबाई इसके अलावा: चेतावनी संदेश: एक टिबल पर पंक्ति नाम सेट करना बहिष्कृत किया गया है। – user3673

16

एक पंक्ति में

> samp.with.rownames <- data.frame(samp[,-1], row.names=samp[,1]) 
10

2016 की आप भी कर सकते हैं के रूप में tidyverse का उपयोग करें।

library(tidyverse) 
samp %>% remove_rownames %>% column_to_rownames(var="names") 
+0

अधिक विशेष रूप से, यह 'tibble :: column_to_rownames' है –