我觉得这个问题很简单,但我是R的新手,我不知道如何解决它。 我有一个100行的数据帧df。第一列是Patient_ID,所有其他列是T细胞随时间的测量值。我想选择所有细胞测量值都低于200的行(患者)。 我的想法(可能非常复杂)是:
f200 = function(x){x "inferior to" 200}
df2 = f200(df[,2:10])
选择所有元素都为True的行,即所有元素的乘积等于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))