筛选行最大值大于阈值的行

乌云密布

我有一个数据框,例如:

x <- data.frame("Names"= c("name1","name2","name3"), "A" = c(0.1,0.1,0.8), "B" = c(0.3,0.4,0.3), "C" = c(0.05,0.9,0.05),"D" =c(0.6,0.1,0.3))

> x
  Names   A   B    C   D
1 name1 0.1 0.3 0.05 0.6
2 name2 0.1 0.4 0.90 0.1
3 name3 0.8 0.3 0.05 0.3

我想删除A,B,C或D的最大值低于0.8的所有行。然后,获取:

> x
  Names   A   B    C   D
2 name2 0.1 0.4 0.90 0.1
3 name3 0.8 0.3 0.05 0.3

名称1被删除,因为最大值为0.6。

然后,我想获取一个文件,例如,我获得NameX的列名称为最大值,在此示例中为:

Name1 : C with value 0.9
Name2 : A with value 0.8 

感谢您的帮助。

索托斯

您可以使用pmax,即

x[do.call(pmax, x[-1]) >= 0.8,]
#  Names   A   B    C   D
#2 name2 0.1 0.4 0.90 0.1
#3 name3 0.8 0.3 0.05 0.3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章