【发布时间】:2020-12-01 02:00:15
【问题描述】:
有人可以帮我解决 R 中的这个问题吗?这是我正在使用的示例数据:
df <- data.frame(item = c("x", "y", "z"),
code1 = c("3 9 27 45 88 98", "23", "12 45"),
code2 = c("45 88 98 99 102 159", "42", "27 0 99"))
df
数据框如下所示:
item code1 code2
1 x 3 9 27 45 88 98 45 88 98 99 102 159
2 y 23 42
3 z 12 45 27 0 99
我想找到变量code1 的每个元素到code2 但不在同一行。例如,观察 1 有一个元素 27,它存在于观察 3 中,因此新变量必须将其记录为计数 1。如果观察在除当前观察之外的任何其他观察中具有多个元素,则代码应计数商场。同样,观察 3 在观察 1 中有元素 45,因此新变量会将其记录为计数 1。最后,第二个观察元素不存在于任何其他观察中,因此新变量应计为 0。这是预期结果:
item code1 code2 code3
1 x 3 9 27 45 88 98 45 88 98 99 102 159 1
2 y 23 42 0
3 z 12 45 27 0 99 1
我尝试过,使用which(code1 %in% code2),使用 for 循环遍历 code1 的元素并搜索到 code2,将 sapply 与 index 比当前索引小 1 的函数一起使用,但这些尝试都没有结果。
谢谢。
【问题讨论】: