【发布时间】:2015-03-19 13:03:26
【问题描述】:
我有 2 个数据框,我试图将其中的值与另一个进行比较 如果表 1 和表 2 中的值都匹配,则将表 2 中的第三个值插入表 1。
示例Table My DF
words number
1 it 1
2 was 2
3 the 3
4 LTD QTY 4
5 end 5
6 of 6
7 winter 7
表 x.sub
lev_dist Var1 Var2
31 1 LTD QTY LTD QTY
我想说的是,如果 x.sub 中的 Var1 等于 MyDF 中的单词,则在 mydf 中单词旁边的第三列中插入 x.sub.lev_dist
我的尝试低于但在结果中不断产生 3 而不是 lev_value
mydf$lev_dist <- ifelse(test = (mydf$words == x.sub$Var1),x.sub$Var1,0)
结果:
words number lev_dist
1 it 1 0
2 was 2 0
3 the 3 0
4 LTD QTY 4 3
5 end 5 0
6 of 6 0
7 winter 7 0
谁能帮忙
【问题讨论】:
-
检查 x.sub$Var1 是否为因子。在这种情况下,请尝试
as.character(x.sub$Var1), 0) -
你是绝对正确的......这是一个非常糟糕的错误,但感谢你把它捡起来......最终答案是:mydf$lev_dist
-
您也可以尝试使用
data.table包及其二进制连接有效地解决它,类似于library(data.table); temp <- setkey(setDT(x.sub[1:2]), Var1); temp[mydf]
标签: r if-statement dataframe