【发布时间】:2018-09-21 02:16:04
【问题描述】:
我希望将不同变量的因子级别作为列名,并将每个 PatID 的计数作为值。 我有的是这样的:
data_sample <- data.frame(
PatID = c(1L, 1L, 1L, 2L, 2L, 3L, 3L, 3L, 3L),
status1 = c("I250", "NA", "NA", "X560", "M206", "NA", "NA", "M206", "NA"),
status2 = c(".", "M206", "NA", "I250", "I250", "M206", "NA", "NA", "X560"),
status3 = c(".", "I250", "NA", "NA", "NA", "I250", "X560", "NA", "NA")
)
我想要的是以下内容:
PatID I250 M206 X560
1 2 1 0
2 2 1 1
3 1 2 2
有人可以帮忙吗?我尝试了 dcast 和其他人,但结果从未出现
【问题讨论】:
-
使用“data.table”,您可以执行以下操作:
library(data.table); melt(as.data.table(data_sample), measure.vars = patterns("^status"))[!value %in% c(".", "NA"), dcast(.SD, PatID ~ value)]。
标签: r