尝试删除此行,但无法获取它。我已经在SO上尝试了多个Q&A,但似乎没有任何效果。有人建议使用sjmisc
库进行尝试,但仍然存在。这是我在下面尝试过的内容以及df
的摘录。
编辑:
下面是一个要测试的数据框。删除了数据框的图片,该图片不正确且政策不正确。
df<-data.frame(name=c('CAREY.PRICE',NA,'JOHN.SMITH'),GA=c(3,2,2),SV=c(2,2,NA),stringsAsFactors = FALSE)
哪个会返回:
name | GA | SV
CAREY.PRICE| 3 | 2
NA | 2 | 2
John.Smith | 2 | NA
问题与以下响应:
df = df[complete.cases(df),]
它从技术上回答了上面的问题,如果任何行中的列都有NA,请将其删除。我应该澄清一下,我希望它成为我选择的一栏,而该栏应该是NA
中的df$name
。
这将删除NA
和John.Smith
。这导致我的脚本出现问题,并且DF中缺少name
(玩家)。
我的脚本中也有na.omit()
,它也删除了NA
和John.Smith。
我的DF中有40个变量,要写出每个可能包含或不包含NA的变量都太多了。我的临时解决方案是将所有NA都更改为0:
df[is.na(df)] <- 0
退货:
name | GA | SV
CAREY.PRICE| 3 | 2
0 | 2 | 2
John.Smith | 2 | 0
然后删除所有为0的df$name
:
df<-df[!(df$name==0),]
我正在寻找的东西:
name | GA | SV
CAREY.PRICE| 3 | 2
John.Smith | 2 | 0
答案 0 :(得分:2)
complete. cases
查找没有任何NA的行。
因此,您的问题的答案是:
df = df[complete.cases(df),]
答案 1 :(得分:1)
这是一种在name
字段中用NA过滤行的方法:
library(dplyr)
df %>% filter(!is.na(name))
#> name GA SV
#> 1 CAREY.PRICE 3 2
#> 2 JOHN.SMITH 2 NA