是否有R中办法有创建数据帧(或像使用cbind类似的情况)时评价为列名的变量?
例如
a <- "mycol";
d <- data.frame(a=1:10)
这创建了一列的数据帧命名a
而不是mycol
。
这比将帮我去掉我的代码不少线路的情况下不太重要:
a <- "mycol";
d <- cbind(some.dataframe, a=some.sequence)
我当前的代码已经折磨:
names(d)[dim(d)[2]] <- a;
这在美学barftastic。
> 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
是structure(data.frame(1:10),names="mycol")
美观给你? :-)
只需使用colnames创建后。 例如
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