在data.frame或cbind中将变量值用作列名

在data.frame或cbind中将变量值用作列名,r,dataframe,renaming,columnname,R,Dataframe,Renaming,Columnname,在R中,当创建数据帧或在类似情况下(如使用cbind)时,是否有方法将变量作为列名进行求值 比如说 a <- "mycol"; d <- data.frame(a=1:10) 我当前的代码有以下内容: names(d)[dim(d)[2]] <- a; 从美学角度来看,这是barftastic。是structuredata.frame1:10,names=mycl,从美学角度来看,您很满意吗- 创建后只需使用colname。 > d <- setNames( d

在R中,当创建数据帧或在类似情况下(如使用cbind)时,是否有方法将变量作为列名进行求值

比如说

a <- "mycol";
d <- data.frame(a=1:10)
我当前的代码有以下内容:

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

从美学角度来看,这是barftastic。

是structuredata.frame1:10,names=mycl,从美学角度来看,您很满意吗-

创建后只需使用colname。
> 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
乙二醇

简单解决方案:

df <- data.frame(1:5, letters[1:5])
logics <- c(T,T,F,F,T)
cities <- c("Warsaw","London","Paris","NY","Tokio")
m <- as.matrix(logics)
m2 <- as.matrix(cities)
name <- "MyCities"
colnames(m) <- deparse(substitute(logics))
colnames(m2) <- eval(name)
df<-cbind(df,m)
cbind(df,m2)

X1.5 letters.1.5. logics MyCities
1            a   TRUE   Warsaw
2            b   TRUE   London
3            c  FALSE    Paris
4            d  FALSE       NY
5            e   TRUE    Tokio

你不能做colnamesd[2]我是选民之一,但我很好奇你和我的答案是否相同,他们是否使用dput和相同作为测试。
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
df <- data.frame(1:5, letters[1:5])
logics <- c(T,T,F,F,T)
cities <- c("Warsaw","London","Paris","NY","Tokio")
m <- as.matrix(logics)
m2 <- as.matrix(cities)
name <- "MyCities"
colnames(m) <- deparse(substitute(logics))
colnames(m2) <- eval(name)
df<-cbind(df,m)
cbind(df,m2)

X1.5 letters.1.5. logics MyCities
1            a   TRUE   Warsaw
2            b   TRUE   London
3            c  FALSE    Paris
4            d  FALSE       NY
5            e   TRUE    Tokio