【发布时间】:2019-11-21 19:06:17
【问题描述】:
我喜欢新的 tidyr pivot_wider 函数,但由于它尚未正式添加到 CRAN 包中,我想知道如何将以下代码转换为旧的 spread() 函数(我无权访问服务器从 github DL tidyr)
test <- data.frame(x = c(1,1,2,2,2,2,3,3,3,4),
y = c(rep("a", 5), rep("b", 5)))
test %>%
count(x, y) %>%
group_by(x) %>%
mutate(prop = prop.table(n)) %>%
mutate(v1 = paste0(n, ' (', round(prop, 2), ')')) %>%
pivot_wider(id_cols = x, names_from = y, values_from = v1)
期望的输出:
# A tibble: 4 x 3
# Groups: x [4]
x a b
<dbl> <chr> <chr>
1 1 2 (1) NA
2 2 3 (0.75) 1 (0.25)
3 3 NA 3 (1)
4 4 NA 1 (1)
我试过了(但不太正确):
test %>%
count(x, y) %>%
group_by(x) %>%
mutate(prop = prop.table(n)) %>%
mutate(v1 = paste0(n, ' (', round(prop, 2), ')')) %>%
spread(y, v1) %>%
select(-n, -prop)
任何帮助表示赞赏!
【问题讨论】:
-
已正式添加,在当前 CRAN tidyr 1.0.0 版本中。您可以在 CRAN 参考手册cran.r-project.org/web/packages/tidyr/tidyr.pdf 中查看枢轴函数