我有点困惑为什么%in%
在比较列表列中的值时不起作用。我有一个 Dataframe ,如下所示:
| A | B |
| --- | --- |
| '1' | c('1', '3', '9') |
| '2' | c('1', '2', '5') |
| '3' | c('4', '5') |
| '4' | c('1', '2', '5') |
| '5' | c('1', '2', '5') |
并且我想添加列C,该列显示A是否存在于B中。当我尝试执行以下操作时(假设上面的 Dataframe 称为df)
df %>% mutate(C = ifelse(A %in% B, 1, 0))
我明白了
| A | B | C |
| --- | --- | --- |
| '1' | c('1', '3', '9') | 0 |
| '2' | c('1', '2', '5') | 0 |
| '3' | c('4', '5') | 0 |
| '4' | c('1', '2', '5') | 0 |
| '5' | c('1', '2', '5') | 0 |
我想要的是:
| A | B | C |
| --- | --- | --- |
| '1' | c('1', '3', '9') | 1 |
| '2' | c('1', '2', '5') | 1 |
| '3' | c('4', '5') | 0 |
| '4' | c('1', '2', '5') | 0 |
| '5' | c('1', '2', '5') | 1 |
为什么我会得到我所得到的结果,我如何才能绕过它?
我也尝试了is.element()
而不是%in%
,但结果是一样的。
任何帮助都很感激。
2条答案
按热度按时间yhxst69z1#
如果您使用
rowwise()
,它将工作:由reprex package(v2.0.1)于2023年2月8日创建
dauxcl2d2#
我们可以使用