我有一个数据集,其中患者报告了几次就诊过程中的副作用。在R中看起来像这样:
data = data.frame("patient" = c("P1", "P1", "P1", "P2", "P2", "P2"),
"side.effect" = c("Headache", "Dizzy", "Headache", "Cramps", "Dizzy", "Headache"))
我想计算> 10%的患者报告的副作用数量,保留超过10%的患者发生的副作用的标签,并将其他所有内容都归入其他类别。最终看起来像(但有更多数据):
SideEffect Count Dizzy 2 Headache 2 Other 1
我很难计算出这一点,因为同一位患者有多个记录。如果没有重复,我将使用dplyr库中的fct_lump。现在
我当前的进度:
data %>%
group_by(side) %>%
summarize("num.side.effect" = n_distinct(subject.ID)) %>%
mutate("condensed.side.effects" = ifelse(num.side.effect > 50,
adverse.event.term, "other"))
哪个我做的还不够。有什么建议吗?
答案 0 :(得分:1)
我们可以将不满足条件的所有其他元素更改为“其他”,并获得“患者”的echo count($param_form['data']);
n_distinct