我有樣本的受試者的數據框架和這些樣本中的濃度。我想要的是獲得受試者的矢量,其對於任何樣本都具有濃度012並且對於該同一個對象的任何其他樣本也≥2。找到對於任何樣本的值<2且對於任何其他樣本的> = 2的受試者
ex <- data.frame(subj = rep(1:6, each = 2),
sampleID = 1:12,
conc = c(1.7, 1.4, 1.5, 3.2, 3.3, 1.6, 2.7, 2.8, 1.4, NA, NA, 3.9))
這是很容易找到的任何樣本中有濃< 2的主旨:
ex %>% # conc < 2
filter(conc < 2) %>%
print() %>%
distinct(subj) %>%
summarise(n())
但我需要的是找到SUBJ有濃< 2任何樣品中也在同一患者的任何其他樣本中的濃度> 2。這是我迄今爲止,但它不起作用。正確的答案只有兩個主題(#2和#3)的濃度均爲< 2,並且> = 2。
ex %>% # concs < 2 and also > 2 for each subject
mutate(lt = ifelse(.$conc < 2, TRUE, FALSE)) %>%
mutate(ge = ifelse(.$conc >= 2, TRUE, FALSE)) %>%
group_by(subj) %>%
summarise(xor(any(.$lt), any(.$ge)))
我強烈希望使用dplyr和magrittr管道的解決方案。 在此先感謝。
完美的答案。謝謝。這讓我fl me了好一陣子 – hackR