【发布时间】:2021-09-23 06:04:57
【问题描述】:
我有一个长格式的数据框,其中包含公司及其按地区划分的估计值。我想建立一个宽表,我可以在其中查看按地区对公司进行了多少正面和负面的估计。当我尝试pivot_wider 时,我收到一个数据框,其单元格中有向量。没关系,但是我无法按地区计算正面和负面反馈的数量。还尝试使用 unnest 和 unnest_longer 函数。后者虽然似乎解决了我的问题,但它只需要一个参数来取消列。
我怎样才能修改我的pivot_wider 以获得理想的结果?
我的数据框:
set.seed(1407)
test_df <- data.frame(code = rep(c("positive", "negative"), 9),
company = c("Google", "Amazon", "SpaceX", "BlueOrigin",
"Google", "Western Digital", "Aliexpress",
"Tencent", "Aliexpress"),
n = rbinom(18, size = 9, prob = 0.5),
region = c("Asia", "Europe", "Middle East"))
我使用函数来加宽表格的结果:
test_df %>%
pivot_wider(id_cols = region,
names_from = code,
values_from = n)
# A tibble: 3 x 3
region positive negative
<chr> <list> <list>
1 Asia <int [3]> <int [3]>
2 Europe <int [3]> <int [3]>
3 Middle East <int [3]> <int [3]>
我想要的输出:
region positive negative
Asia 4 2
Asia 3 5
Asia 5 2
Europe 3 5
Europe 6 4
Europe 5 1
Middle East 8 5
Middle East 6 5
Middle East 6 2
【问题讨论】:
标签: r data-manipulation