【发布时间】:2019-07-24 06:54:09
【问题描述】:
我有两个 data.tables 我想对每一行进行比较并添加新列。
DT1 <- data.table(ID=c("F","A","E","B","C","D","C"),
num=c(59,3,108,11,22,54,241),
value=c(90,47,189,72,42,86,280))
DT2 <- data.table(Mark=c("Mary","Abner","Bonnie","Trista","Norman"),
numA=c(48,20,88,237,10),
numB=c(60,326,54,268,89),
valueA=c(78,34,78,270,60),
valueB=c(92,190,90,385,75))
我的目标:
我想在DT1中找到num和value,DT2中有numA和numB的范围。
例如:
对于 DT1 中的 F 行 num = 59 和 value = 90,也必须匹配:
num(59) > DT2$numA(48) & num(59) DT2$valueA(78) & value(90)
匹配!所以添加新的列名结果,值为Mark by dt2
如果没有匹配,设置为未定义
想要的结果:
DT3 <- data.table(ID=c("F","A","E","B","C","D","C"),
num=c(59,3,108,11,22,54,241),
value=c(90,47,189,38,42,86,280),
result=c("Mary","Undefined","Abner","Norman",
"Abner","Abner","Trista"))
如何保证每一行都有比较并添加新列?
【问题讨论】:
-
如何解决冲突?当有不止一场比赛时,你会选择哪一场?目前,我正在参加第一场比赛。
-
我也想过这个问题,但是对于我的原始数据来说,好像没问题,只要能找到对应的资料就可以了。
标签: r data.table