r - R-使用另一个数据框的匹配值将新列添加到数据框

标签 r dataframe match

我正在尝试用table2的匹配val2值填充table1

table1$New_val2 = table2[table2$pid==table1$pid,]$val2

enter image description here

但我得到警告
longer object length is not a multiple of shorter object length

这很公平,因为表的长度不同。

请指导我正确的方法。

最佳答案

merge(table1, table2[, c("pid", "val2")], by="pid")添加all.x=TRUE参数以保留table1中所有不匹配的pids在table2中...
您走在正确的轨道上。这是使用比赛的一种方法...table1$val2 <- table2$val2[match(table1$pid, table2$pid)]

关于r - R-使用另一个数据框的匹配值将新列添加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37034242/

相关文章:

r - 边界处估计的概率是什么意思?使用 depmixS4 包的 R 中的隐马尔可夫模型

r - 如何在 R 中操作配对数据集?

r - sf 对象在 R data.table 中创建为列表

python - 如果 groupby 后满足条件,则对先前值求和

jquery - 如何在 jQuery 中分割字符串并获取最后一个匹配项?

r - 在事先不知道变量名的情况下访问 R6 类变量?

r - 向数据框添加名称的函数

r - 我正在比较两列以创建第三列...它不起作用?

r - 使用 R 中的数据匹配矩阵对提取数据

r - 查找同一列中不同类别的数据框中的匹配数