我有一个关于在R
中使用粘贴的问题a<-c(1,2,3,5,5,6,7,8)
b<-c(2,3,5,6,2,3,6,7)
d<-c(2,8,4,6,3,7,3,5)
df<-data.frame(a,b)
cbind(df,sugar=d)
使用上面的代码,我得到了这个:
> a b sugar
1 1 2 2
2 2 3 8
3 3 5 4
4 5 6 6
5 5 2 3
6 6 3 7
7 7 6 3
8 8 7 5
但是,我想知道为什么我无法使用粘贴功能获得相同的结果:
name<-c("sugar","salt","fat")
cbind(df,paste(name[1])=d)
任何帮助都将非常感谢!!
答案 0 :(得分:2)
如果您需要创建一个名称存储在对象中的新列,请尝试
df[name[1]] <- d
df
# a b sugar
#1 1 2 2
#2 2 3 8
#3 3 5 4
#4 5 6 6
#5 5 2 3
#6 6 3 7
#7 7 6 3
#8 8 7 5
另一种选择可能是使用assign
assign('df', `[[<-`(df, name[1], value=d))
答案 1 :(得分:0)
您想要更改名称,请尝试setNames
。
> setNames(cbind(df, d), c(colnames(df),name[1]))
a b sugar
1 1 2 2
2 2 3 8
3 3 5 4
4 5 6 6
5 5 2 3
6 6 3 7
7 7 6 3
8 8 7 5