从所有条件中选择至少具有两个条件的行

2023-12-19

我在 R 中有这个数据框,我需要仅选择符合以下至少两个条件的行:

  • A >= 5
  • B >= 5
  • C >= 5
  • D >= 5

              A         B         C         D
    1   0.000000 48.936170  0.000000 29.787234
    2   0.000000 72.340426  0.000000  6.382979 
    3   0.000000 78.723404  0.000000  2.127660
    4   2.127660 78.723404  0.000000  0.000000
    5   0.000000 43.617021  0.000000 35.106383
    6   0.000000 79.787234  0.000000  1.063830
    7   3.191489  0.000000 77.659574  0.000000
    8  77.659574  0.000000  2.127660  0.000000
    9  46.808511  0.000000  0.000000 31.914894
    10 35.106383  0.000000 27.659574  0.000000
    

我发现的唯一解决方案是使用“if”......

if ( ((data$A >=5) + (data$B >=5) + (data$C >=5) + (data$D >=5)) >=2 ) {

#result }

...但我找不到如何将 if 选择与我的数据框结合起来。 我尝试过这样,但我似乎不是这个问题的解决方案:

Selection = data[if ( ((data$A >=5) + (data$B >=5) + (data$C >=5) + (data$D >=5)) >=2 ),]

预先感谢您的帮助,


你也可以这样做

df <- read.table(header=T, text="         A         B         C         D
1   0.000000 48.936170  0.000000 29.787234
2   0.000000 72.340426  0.000000  6.382979 
3   0.000000 78.723404  0.000000  2.127660
4   2.127660 78.723404  0.000000  0.000000
5   0.000000 43.617021  0.000000 35.106383
6   0.000000 79.787234  0.000000  1.063830
7   3.191489  0.000000 77.659574  0.000000
8  77.659574  0.000000  2.127660  0.000000
9  46.808511  0.000000  0.000000 31.914894
10 35.106383  0.000000 27.659574  0.000000")
df[rowSums(df >= 5) >= 2, ]
#           A        B        C         D
# 1   0.00000 48.93617  0.00000 29.787234
# 2   0.00000 72.34043  0.00000  6.382979
# 5   0.00000 43.61702  0.00000 35.106383
# 9  46.80851  0.00000  0.00000 31.914894
# 10 35.10638  0.00000 27.65957  0.000000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从所有条件中选择至少具有两个条件的行 的相关文章

随机推荐