2013-03-29 4 views
10

Gibt es eine Möglichkeit in R, eine Variable als Spaltennamen beim Erstellen eines Datenrahmens auszugeben (oder in ähnlichen Situationen wie cbind)?Verwendung des Variablenwerts als Spaltenname in data.frame oder cbind

Zum Beispiel

a <- "mycol"; 
d <- data.frame(a=1:10) 

dies schafft einen Datenrahmen mit einer Spalte namens a statt mycol. Dieses

ist weniger wichtig als der Fall, dass mir schon einige Zeilen aus meinem Code entfernen würde helfen:

a <- "mycol"; 
d <- cbind(some.dataframe, a=some.sequence) 

Mein aktueller Code hat die gefoltert:

names(d)[dim(d)[2]] <- a; 

die ästhetisch barftastic ist.

+1

können Sie nicht tun 'COLNAMES (d) [2] <- a' oder sogar' Namen (d) [2] <- a', aber ich finde die explizite ehemalige sicherer. –

Antwort

10
> d <- setNames(data.frame(a=1:10), a) 
> d 
    mycol 
1  1 
2  2 
3  3 
4  4 
5  5 
6  6 
7  7 
8  8 
9  9 
10 10 
7

Ist structure(data.frame(1:10),names="mycol") Ihnen ästhetisch gefällig? :-)

+0

Ich bin einer der Upwoter, aber ich war neugierig zu sehen, ob Ihre und meine Antwort identisch sein würde, und sehen, dass sie "dput" und "identisch" als Tests verwenden. –

2

verwenden Sie einfach colnames nach der Erstellung. zB

a <- "mycolA" 
b<- "mycolB" 
d <- data.frame(a=1:10, b=rnorm(1:10)) 
colnames(d)<-c(a,b) 
d 
mycolA  mycolB 
1 -1.5873866 
2 -0.4195322 
3 -0.9511075 
4 0.2259858 
5 -0.6619433 
6 3.4669774 
7 0.4087541 
8 -0.3891437 
9 -1.6163175 
10 0.7642909 
Verwandte Themen