查找表中所有列值均在特定范围内的行

时间:2019-06-05 11:12:16

标签: r

我有一个带有id列(行名称:x1-x5)的表,其后是20个带有数值的列。我需要找到所有列值都在给定范围内的行,例如1000-2000。

x1  614.514 587.3   719.25  604.801 669.595 1703.74 1744.23 1876.09 846.224 2314.82 1348.99 2013.43 1867.24 1762.6  1566.74 1590.8  1587.01 1544.88 1617.78 1309.69

x2  3254.02 5258.79 2648.52 2644.17 3222.8  4127.27 5254.42 5434.76 6102.35 5890.25 5619.38 3346.84 3696.11 4581.44 1468.48 4628.4  4969.09 4623.34 4842.4  5542.33

x3  596.369 561.562 860.907 612.952 636.416 1246.69 1122.82 1125.08 508.835 1173.63 1046.1  1078.4  1238.64 1042.9  950.404 1120.76 998.17  1075.62 1115.9  914.933

x4  1343.95 1712.76 952.298 1018.87 1084.32 578.646 707.197 599.226 1337.18 1686.72 840.897 539.199 533.319 563.101 736.027 661.588 711.23  657.246 687.865 793.797

x5  1118.95 1325.52 1287.7  1666.06 1740.34 1799.18 1956.39 1483.32 2998    4045.77 2176.8  1693.72 1896.93 2041.38 1014.72 2128.76 2043.94 1831.81 1936.41 2275.93

1 个答案:

答案 0 :(得分:-1)

尝试使用rowSums

df[rowSums(df >= 1000 & df <= 2000) == ncol(df), ]

使用apply

df[apply(df >= 1000 & df <= 2000, 1, all), ]

使用filter_all中的dplyr

library(dplyr)
df %>% filter_all(all_vars(. >= 1000 & . <= 2000))