gpt4 book ai didi

r - pivot_wider 合并同一行的信息

转载 作者:行者123 更新时间:2023-12-04 08:49:04 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to reshape data from long to wide format

(11 个回答)


11 个月前关闭。




我想用pivot_wider为单个日期创建一个广泛的列表。
一个变量有 8 个不同的组,但另一个变量是总和。
数据是这样的:

df <- data.frame(
stringsAsFactors = FALSE,
date = c("09/01/2020","09/01/2020",
"09/01/2020","09/01/2020","09/01/2020","09/01/2020",
"09/01/2020","09/01/2020"),
x = letters[1:8],
y = c(34L, 34L, 74L, 50L, 64L, 19L, 25L, 21L),
z = c(42L, 210L, 284L, 145L, 125L, 77L, 70L, 70L)
)

当使用 pivot_wider 时,它会创建 7 行而不是 8 行,因为 y 的前两个观察值为 34,如下所示
df %>% 
pivot_wider(names_from = x, values_from = z, values_fill = 0)
而预期的输出是 enter image description here

最佳答案

使用时 pivot_wider它正在制作 y列作为 id 变量,因此行被合并。给每一行一个单独的 id,然后以宽格式获取数据。

library(dplyr)

df %>%
mutate(row = row_number()) %>%
tidyr::pivot_wider(names_from = x, values_from = z, values_fill = 0) %>%
select(-row)

# date y a b c d e f g h
# <chr> <int> <int> <int> <int> <int> <int> <int> <int> <int>
#1 09/01/2020 34 42 0 0 0 0 0 0 0
#2 09/01/2020 34 0 210 0 0 0 0 0 0
#3 09/01/2020 74 0 0 284 0 0 0 0 0
#4 09/01/2020 50 0 0 0 145 0 0 0 0
#5 09/01/2020 64 0 0 0 0 125 0 0 0
#6 09/01/2020 19 0 0 0 0 0 77 0 0
#7 09/01/2020 25 0 0 0 0 0 0 70 0
#8 09/01/2020 21 0 0 0 0 0 0 0 70

关于r - pivot_wider 合并同一行的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64169332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com