我想比较两个数据框中的两个列名,并使用原始数据框中匹配的列名创建一个新表。
a<-data.frame(a1=c(1,2,3,4,5),a2=c(2,3,4,5,6),b1=c(3,4,5,6,7),c1=c(4,5,6,7,8))
b<-data.frame(c1=c(10,20,30,40,50),b1=c(20,30,40,50,60),d1=c(30,40,50,60,70))
我想创建一个新的数据框,在列名(例如“c1”等)匹配时添加 a+b。例如。基于以上数据,我名为“c”的新数据框现在将如下所示: c=data.frame(c1=c(10+4,20+5,30+6,40+7,50+8), b1=c(20+3,30+4,40+5,50+6 ,60+7))
我的原始数据框比上面的大得多,所以我使用了“for (i in 1:10)”。但只有当两个列名在两个数据框中的顺序相同时,它才有效。
预先感谢您的帮助。
最佳答案
as.data.frame(lapply(intersect(names(a), names(b)),
function(name) a[name] + b[name]))
关于r - 比较列名并创建新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16529327/