【发布时间】:2021-01-09 18:16:37
【问题描述】:
我试图在合并两个日期框架后创建一列,指示 1=成功匹配,2=数据框 1 中不匹配的行,3=数据框 2 中不匹配的行。
我在合并之前在每个数据框中创建了一个等于 1 的列,以便我可以分析合并。
合并后的数据框如下所示:
merge_s merge_p
1 NA
NA 1
1 1
这是我的代码:
pretest_merged$merge_result <- ifelse(pretest_merged$merge_p == 1 & pretest_merged$merge_s==1,1,
ifelse(pretest_merged$merge_p == 1 & is.na(merge_s),2,
ifelse(pretest_merged$merge_s==1 & is.na(merge_p),3,"error")))
生成的数据框如下所示:
merge_s merge_p merge_result
1 NA NA
NA 1 NA
1 1 1
当我希望它看起来像这样时:
merge_s merge_p merge_result
1 NA 3
NA 1 2
1 1 1
我已经尝试摆脱 is.na() 但这不起作用。我也尝试过使用 if_else() 但它告诉我条件必须是逻辑向量而不是数据框。
我做错了什么? 对不起,如果这个问题是超级基本的,但我想不出还有什么可以尝试的。谢谢。
【问题讨论】:
-
你的意思是
!is.na而不是is.na -
@akrun,我想要丢失的情况。
标签: r if-statement