在R中使用粘贴

时间:2014-10-30 17:49:20

标签: r paste

我有一个关于在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)

任何帮助都将非常感谢!!

2 个答案:

答案 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