我在R中有两个数据集,如下所示,数据集1和数据集2.考虑数据集1中的“公司”列。我想迭代数据集2中的每一行,以查找该公司是否存在,以及是否存在然后,将格式从数据集2复制到数据集1格式字段(当前为NA)。感谢。
数据集1
数据集2
实施Miff解决方案后dataset1_updated
答案 0 :(得分:1)
这似乎是合并的经典案例,例如:
Warning: (1366, "Incorrect string value: '\\x98\\xD0\\xBD\\xD1\\x82\\xD0...' for column 'description' at row 1")
由于缺少示例数据而未进行测试
答案 1 :(得分:1)
您想要将这两个数据集连接在一起。 data.table
非常擅长这一点。
library(data.table)
setDT(dataset1)
setDT(dataset2)
setkey(dataset1, company)
setkey(dataset2, company)
dataset2[dataset1[, .(fname, lname, email, company)]]
左外连接
左外连接的结果(或简称左) 表A和B总是包含" left"的所有行。表 (A),即使连接条件没有找到任何匹配的行 "右"表(B)。这意味着如果ON子句匹配0(零) B中的行(对于A中的给定行),连接仍将返回一行 结果(对于那一行) - 但是在B的每一列中都是NULL。左边 outer join返回内部联接中的所有值以及所有值 在左表中与右表不匹配,包括行 链接列中包含NULL(空)值。
这里我们将在dataset1上加入dataset2。我们保留来自dataset1的所有行,如果来自dataset1的公司与来自dataset2的公司匹配,则加入dataset2。如果匹配,我们保留dataset2的行并添加它,包括格式字段。如果它不匹配,我们会得到NA
。