r - 比较列名并创建新表

标签 r match

我想比较两个数据框中的两个列名,并使用原始数据框中匹配的列名创建一个新表。

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/

相关文章:

python - Python 3.10 中未知长度列表的结构模式匹配

r - 在 R 中不使用循环平滑序列

r - R:在foreach%dopar%中显示错误和警告消息

r - 将函数绑定(bind)到列表

JavaScript:使用 .exec() 查找连续匹配项

Javascript将正则表达式与类名匹配并返回数组中的innerHTML值

r - 在一个变量内对多个观察结果进行分类,这样我就可以将它们分类到新的列中。我怎样才能使代码更短?在 R

r - 在不使用 Java 的情况下在 R 中写入文件 xlsx

c# - 正则表达式可以匹配交错匹配吗?

Python Pandas 根据标题值匹配 Vlookup 列