如何解决将新列分配给R
我有一个数据帧df_list
和另一个数据帧df_new
的列表。我想将a
的第一列df_new
添加到列表mtcars1
的第一数据框df_list
,b
的第二列df_new
中放入列表mtcars2
中的第二个数据帧df_list
,依此类推。
预期结果:在df_list
中,mtcars1
将从a
中有一个新列df_new
,mtcars2
将具有一个新列{{1 }}中的b
,df_new
中将有一个新列mtcars3
,c
中将会有一个新列df_new
}}。
在函数或循环中执行此操作的最佳方法是什么?
mtcars4
解决方法
这对您有用吗?
for(i in 1:4){
df_list[[i]] = cbind(df_list[[i]],df_new[,i])}
,
使用地图:
Map(cbind,df_list,df_new)
如果需要保留名称,请编写自定义函数:
myCbind <- function(x,y){
d <- cbind(x,df_new[[ y ]])
colnames(d)[ ncol(d) ] <- y
d
}
Map(myCbind,colnames(df_new))
检查名称:
res <- Map(myCbind,colnames(df_new))
sapply(res,function(i) tail(colnames(i),1))
# mtcars1 mtcars2 mtcars3 mtcars4
# "a" "b" "c" "d"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。