gpt4 book ai didi

r - 基于整行使用 dplyr/magrittr 过滤行

转载 作者:行者123 更新时间:2023-12-04 23:41:58 28 4
gpt4 key购买 nike

一个可以使用 dplyr 过滤行 filter ,但条件通常基于每行的特定列,例如

d <- data.frame(x=c(1,2,NA),y=c(3,NA,NA),z=c(NA,4,5))
d %>% filter(!is.na(y))

我想通过NA的数量是否大于50%来过滤该行,例如
d %>% filter(mean(is.na(EACHROW)) < 0.5 )

我如何以 dplyr/magrittr 流程方式执行此操作?

最佳答案

您可以使用 rowSumsrowMeans为了那个原因。提供数据的示例:

> d
x y z
1 1 3 NA
2 2 NA 4
3 NA NA 5

# with rowSums:
d %>% filter(rowSums(is.na(.))/ncol(.) < 0.5)

# with rowMeans:
d %>% filter(rowMeans(is.na(.)) < 0.5)

两者都给出:
  x  y  z
1 1 3 NA
2 2 NA 4

如您所见,第 3 行已从数据中删除。

在基础 R 中,您可以执行以下操作:
d[rowMeans(is.na(d)) < 0.5,]

得到相同的结果。

关于r - 基于整行使用 dplyr/magrittr 过滤行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34652150/

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