簡體   English   中英

如果 NA 在 BOTH 列中,則刪除行

[英]Remove row if NA in BOTH columns

我正在嘗試刪除第 7 列和第 12 列中具有 NA 值的行。

我在這里找到了用於連續功能的 complete.cases 命令:

dataframe[complete.cases(dataframe[ , 5:6]),]

我嘗試了以下變體並得到了相關的錯誤:

dataframe[complete.cases(dataframe[ , 7,12]),]
invalid 'type' (list) of argument

dataframe[complete.cases(dataframe[ , c(7,12)]),]
Error in C(7, 12) : object not interpretable as a factor

dataframe[complete.cases(dataframe[ , 7 & 12]),]
invalid 'type' (list) of argument

我很確定我只是弄亂了一些基本語法,但我對此有點陌生並且畫了一個空白。 關鍵方面,是它需要在兩列中都有 NA ; 例如,如果它在 7 中有數據,但在 12 中有 NA,反之亦然,我想保留它。

您可以使用以下解決方案:

library(dplyr)

df %>% filter(!if_all(everything(), ~ is.na(.x)))

  x  y
1 1 NA
2 2  2
3 4  5

數據

structure(list(x = c(1, 2, NA, 4), y = c(NA, 2, NA, 5)), class = "data.frame", row.names = c(NA, 
-4L))

您不妨將所需的列分配給.cols參數。 在我的示例示例中,我選擇了everything()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM