在大于10%的重复记录(R)中查找值

时间:2018-07-02 23:51:53

标签: r dplyr data-cleaning

我有一个数据集,其中患者报告了几次就诊过程中的副作用。在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"))

哪个我做的还不够。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我们可以将不满足条件的所有其他元素更改为“其他”,并获得“患者”的echo count($param_form['data']);

n_distinct