【发布时间】:2018-09-08 07:02:55
【问题描述】:
试图删除此行但无法获取。我已经尝试过关于 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)
哪个会返回:
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
返回:
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
【问题讨论】:
-
你试过
na.omit()吗? -
是的,我试过了
-
修复了@Tjebo 上面的问题。让我知道是否有更快的解决方案。谢谢
-
stackoverflow.com/questions/11254524/…。在这些情况下,我正在使用这个定制的函数
complete_fun。我有它在我自己的个人实用程序包中。或者,正如对该问题的最受好评的答案所暗示的或根据我在下面的评论 - 使用df[!is.na(df$name),] -
我也会将此标记为重复 - 真的不想刻薄。这只会帮助将人们引导到已经有很好答案的另一个问题。