【发布时间】:2021-02-19 13:02:33
【问题描述】:
我有一个数据框(x)。如您所见,对于同一个 ID,我有不同的值(bp:yes/no 和 N),但有时,我有一个始终 bp ==no 的唯一 ID。
x
ID bp N
8012199 no 75
8012199 yes 2
8012211 no 118
8012211 yes 2
8012321 no 37
8012341 no 146
8012342 no 84
我想创建一个新变量 (frequency: low and high)
x
ID bp N frequency
8012199 no 75
8012199 yes 2 low
8012211 no 118
8012211 yes 4 high
8012321 no 37 low
8012341 no 146 low
8012342 no 84 low
根据不同的条件:
- 如果 bp == 是 | n
- 如果 bp == 是 | n > 2 : 高
- 如果 ID 是唯一的(始终 = 否):低
到目前为止我尝试过的是
r <- x %>%
mutate(bp= case_when(
duplicated(ID)==FALSE ~ "low",
bp %in% "yes" & n <=2 ~ "low",
bp %in% "yes" & n > 2 ~ "high" ))
duplicated(x$ID)
FALSE TRUE FALSE TRUE FALSE FALSE FALSE
它对“是”条件有效,但对重复无效。任何建议都会很棒!
【问题讨论】: