我有此数据:
structure(list(id = 1:6, arthritis = c(1L, 0L, 0L, 0L, 0L, 1L
), asthma = c(0L, 0L, 0L, 0L, 0L, 0L), cancer = c(0L, 0L, 0L,
0L, 0L, 0L), cerebvascdz = c(0L, 0L, 0L, 0L, 0L, 0L), chf = c(0L,
0L, 0L, 0L, 0L, 0L), crf = c(0L, 0L, 0L, 0L, 0L, 0L), copd = c(0L,
0L, 0L, 0L, 0L, 0L), depression = c(0L, 0L, 0L, 1L, 1L, 1L),
diabetes = c(0L, 0L, 0L, 0L, 0L, 0L), hyperlipid = c(1L,
0L, 1L, 0L, 1L, 0L), htn = c(1L, 0L, 1L, 1L, 0L, 1L), ihd = c(1L,
0L, 0L, 0L, 0L, 0L), obesity = c(0L, 0L, 0L, 0L, 0L, 0L),
osteoporosis = c(0L, 0L, 0L, 0L, 0L, 1L)), row.names = c(NA,
6L), class = "data.frame")
,其中包含患者的ID。其余所有列都是患者可能患有的合并症,以布尔值表示。 我正在尝试使用collect方法翻转表as shown like this。患者的每种合并症都应在右侧填充,患者编号在左侧。
我很确定我应该使用collect函数,但是似乎无法正常工作。有没有人知道我应该怎么做才能将帧切换到所需的格式?
答案 0 :(得分:1)
这是正确的代码
pmh %>%
gather(diagnosis,num, arthritis:osteoporosis) %>%
arrange(id) %>%
filter(num == 1)
我是R的新手,我认为我误会了collect的第一个论点。