根据所有列的值选择数据框中的行

时间:2017-01-17 10:32:00

标签: r dataframe

我觉得这个问题很简单,但我是R的新手,我不知道如何解决它。 我有一个100行的数据帧df。第一列是Patient_ID,所有其他列是T细胞随时间的测量值。我想选择所有细胞测量值都低于200的行(患者)。 我的想法(可能非常复杂)是:

f200 = function(x){x "inferior to" 200} 


df2 = f200(df[,2:10])

选择所有元素都为True的行,即所有元素的乘积等于1的行...但我不知道如何写这个!你能帮助我吗?或者告诉我一个更简单的方法?

1 个答案:

答案 0 :(得分:0)

我们可以尝试使用Reduce&

df[Reduce(`&`, lapply(replace(df[-1], is.na(df[-1]), 0), `<`, 200)),]
#   ID col1 col2
#1  1   NA   24
#2  2   20   NA

数据

set.seed(24)
df <- data.frame(ID=1:4, col1 = c(NA, 20, 210, 30), col2 = c(24, NA, 30, 240))