У меня есть таблица со столбцом 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
Попробуйте использовать rowSums
rowSums
df[rowSums(df >= 1000 & df <= 2000) == ncol(df), ]
Используя apply
apply
df[apply(df >= 1000 & df <= 2000, 1, all), ]
Используя filter_all из dplyr
filter_all
dplyr
library(dplyr) df %>% filter_all(all_vars(. >= 1000 & . <= 2000))