gpt4 book ai didi

r - 在 R 中过滤数据

转载 作者:行者123 更新时间:2023-12-04 00:12:25 25 4
gpt4 key购买 nike

我有一个 CSV 数据文件,我可以使用 read.csv() 在 R 中加载它

一些数据丢失,所以我想将数据框减少到完全由非丢失数据组成的设置,即如果 NULL出现在任何地方,我想从过滤后的数据集中排除该列和行。

我知道我可以使用内置的 R 向量操作相当简单地做到这一点,但我不太确定如何做到这一点?

为了让我的问题更具体一点,这里有一个数据的快速样本,这样你就可以看到我想要做什么。

DocID       Anno1    Anno7  Anno8
1 7 NULL 8
2 8 NULL 3
44 10 2 3
45 6 6 6
46 1 3 4
49 3 8 5
62 4 NULL 9
63 2 NULL 4
67 11 NULL 3
91 NULL 9 7
92 NULL 7 5
93 NULL 8 8

所以给定这个输入,我需要一些代码来减少输出。
DocID       Anno8
44 3
45 6
46 4
49 5

Anno8是唯一一列非空数据,非空数据只有四行。

最佳答案

您可以使用 na.omit() 删除包含缺失的任何行,但这不是您想要的。此外,目前接受的答案是错误的。它为您提供完整的列,但不会删除具有一个或多个缺失值的行,这正是我们所要求的。可以通过以下方式获得正确答案:

> a <- data.frame(a=c(1,2),b=c(NA,1), c=c(3,4))
> a
a b c
1 1 NA 3
2 2 1 4
> na.omit(a)[,colSums(is.na(a))==0]
a c
2 2 4

要看到上面的答案是错误的:
> a[ ,apply(a, 2, function(z) !any(is.na(z)))]
a c
1 1 3
2 2 4

由于第 2 列中的 NA,第 1 行应该被删除。

关于r - 在 R 中过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/476726/

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