gpt4 book ai didi

r - 如何从包含n * NA的数据框中删除行

转载 作者:行者123 更新时间:2023-12-04 05:03:57 26 4
gpt4 key购买 nike

我有许多大型数据集,共有〜10列和〜200000行。并非所有列都包含每一行的值,尽管至少一列必须包含要存在的行的值,但我想为行中允许的NA设置一个阈值。

我的数据框看起来像这样:

 ID q  r  s  t  u  v  w  x  y  z
A 1 5 NA 3 8 9 NA 8 6 4
B 5 NA 4 6 1 9 7 4 9 3
C NA 9 4 NA 4 8 4 NA 5 NA
D 2 2 6 8 4 NA 3 7 1 32

我希望能够删除包含2个以上包含NA的单元格的行以获取
ID q  r  s  t  u  v  w  x  y  z
A 1 5 NA 3 8 9 NA 8 6 4
B 5 NA 4 6 1 9 7 4 9 3
D 2 2 6 8 4 NA 3 7 1 32
complete.cases删除包含任何 NA的所有行,并且我知道可以删除某些列中包含 NA的行,但是有一种方法可以对其进行修改,以使它不确定包含 NA的列,但是总共有多少呢?

或者,通过使用以下方法合并几个数据框来生成此数据框
    file1<-read.delim("~/file1.txt")
file2<-read.delim(file=args[1])

file1<-merge(file1,file2,by="chr.pos",all=TRUE)

也许合并功能可以更改?

谢谢

最佳答案

使用rowSums。要从数据框架(df)中删除正好包含n个NA值的行,请执行以下操作:

df <- df[rowSums(is.na(df)) != n, ]

或删除包含n个或更多 NA值的行:
df <- df[rowSums(is.na(df)) < n, ]

在两种情况下,当然都需要用所需的数字替换 n

关于r - 如何从包含n * NA的数据框中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18116305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com