如果 R 中的 Column == NA,则删除整行
Remove entire Row if Column == NA in R
正在尝试删除此行但无法获取。我已经在 SO 上尝试了多个问答,但似乎没有任何效果。尝试按照某人的建议使用 sjmisc
库,但它仍然存在。这是我在下面尝试过的内容和 df
.
的片段
编辑:
下面是一个DataFrame来测试。删除了不正确且不正确的数据框图片。
df<-data.frame(name=c('CAREY.PRICE',NA,'JOHN.SMITH'),GA=c(3,2,2),SV=c(2,2,NA),stringsAsFactors = FALSE)
哪个会 return:
name | GA | SV
CAREY.PRICE| 3 | 2
NA | 2 | 2
John.Smith | 2 | NA
以下响应的问题:
df = df[complete.cases(df),]
从技术上回答了上面的问题,如果任何行中的列有NA,则将其删除。我应该澄清一下,我希望它成为我选择的专栏,即 df$name
.
中的 NA
这样做的目的是删除 NA
和 John.Smith
。这导致我的脚本出现问题,并且我的 DF 中缺少 name
(players)。
我的脚本中也有 na.omit()
,它也删除了 NA
和 John.Smith。
我的 DF 中有 40 个变量,写出每个可能有或没有 NA 的可能变量太多了。我的临时解决方案是将所有 NA 更改为 0:
df[is.na(df)] <- 0
RETURNS:
name | GA | SV
CAREY.PRICE| 3 | 2
0 | 2 | 2
John.Smith | 2 | 0
然后删除任何 df$name
即 0:
df<-df[!(df$name==0),]
我在找什么:
name | GA | SV
CAREY.PRICE| 3 | 2
John.Smith | 2 | 0
complete. cases
查找没有任何 NA 的行。
因此,您问题的答案是:
df = df[complete.cases(df),]
这是一种在 name
字段中使用 NA 过滤行的方法:
library(dplyr)
df %>% filter(!is.na(name))
#> name GA SV
#> 1 CAREY.PRICE 3 2
#> 2 JOHN.SMITH 2 NA
正在尝试删除此行但无法获取。我已经在 SO 上尝试了多个问答,但似乎没有任何效果。尝试按照某人的建议使用 sjmisc
库,但它仍然存在。这是我在下面尝试过的内容和 df
.
编辑:
下面是一个DataFrame来测试。删除了不正确且不正确的数据框图片。
df<-data.frame(name=c('CAREY.PRICE',NA,'JOHN.SMITH'),GA=c(3,2,2),SV=c(2,2,NA),stringsAsFactors = FALSE)
哪个会 return:
name | GA | SV
CAREY.PRICE| 3 | 2
NA | 2 | 2
John.Smith | 2 | NA
以下响应的问题:
df = df[complete.cases(df),]
从技术上回答了上面的问题,如果任何行中的列有NA,则将其删除。我应该澄清一下,我希望它成为我选择的专栏,即 df$name
.
NA
这样做的目的是删除 NA
和 John.Smith
。这导致我的脚本出现问题,并且我的 DF 中缺少 name
(players)。
我的脚本中也有 na.omit()
,它也删除了 NA
和 John.Smith。
我的 DF 中有 40 个变量,写出每个可能有或没有 NA 的可能变量太多了。我的临时解决方案是将所有 NA 更改为 0:
df[is.na(df)] <- 0
RETURNS:
name | GA | SV
CAREY.PRICE| 3 | 2
0 | 2 | 2
John.Smith | 2 | 0
然后删除任何 df$name
即 0:
df<-df[!(df$name==0),]
我在找什么:
name | GA | SV
CAREY.PRICE| 3 | 2
John.Smith | 2 | 0
complete. cases
查找没有任何 NA 的行。
因此,您问题的答案是:
df = df[complete.cases(df),]
这是一种在 name
字段中使用 NA 过滤行的方法:
library(dplyr)
df %>% filter(!is.na(name))
#> name GA SV
#> 1 CAREY.PRICE 3 2
#> 2 JOHN.SMITH 2 NA