使用多个条件在R中设置子集(NA值问题)

mbzjlibv  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(93)

大家早上好
我有一个有4列的 Dataframe 。
我尝试减去第1列中值为X且其他3列中值为NA的所有观察值。
下面是我目前为止尝试的代码:

df <-
df[!(
df$col1 == "X" &
is.na(df$col2) &
is.na(df$col3) &
is.na(df$col4),]

子集化可以工作,但它也会创建具有新名称(NA.1、NA.2、NA.3等)的观测,这些观测的所有四列都有缺失值。
我不知道为什么不遵守第一个条件(col1 == "X"),因为新的df包括在列1中具有NA值而不是所需的"X"值"的观测。
你知道为什么会这样吗?
我包括了第一步中的一切,但当然会提供更多的细节,如果必要的。

rsl1atfo

rsl1atfo1#

谢谢你的回答和想法。
这个建议不起作用,但我从中寻找,并找到了一个可行的解决方案:

df <-
  df[with(df, !(col1 %in% "X" &
                    is.na(col2) &
                    is.na(col3) &
                    is.na(col4)
  )), ]

相关问题