首页 > 解决方案 > 删除平均值小于某个值的行 - R

问题描述

我正在尝试删除平均值 < 1 的数据帧的所有行。我可以通过首先创建具有平均值的列,然后根据该列值进行删除来做到这一点,但是我正在寻找一种更简洁的方法来做到这一点无需编辑数据框本身。

前df:

一个 C D
X 1 3 2 1
是的 0 1 0.5 1
z 0 2 1 0

期望的结果:

一个 C D
X 1 3 2 1
z 0 2 1 0

标签: rdataframeconditional-statementsrows

解决方案


rowMeans您可以使用并删除平均值小于 1 的行来计算每行 的平均值。

df[rowMeans(df[-1], na.rm = TRUE) > 1,]

#  A B C D E
#1 x 1 3 2 1

使用dplyr-

library(dplyr)

df %>% filter(rowMeans(select(., where(is.numeric))) > 1)

推荐阅读