gpt4 book ai didi

r - tidyR 从长到宽的数据?

转载 作者:行者123 更新时间:2023-12-03 23:23:04 26 4
gpt4 key购买 nike

我有看起来像这样的数据

df = data.frame(name=c("A","A","B","B"),
group=c("g1","g2","g1","g2"),
V1=c(10,40,20,30),
V2=c(6,3,1,7))

我想 reshape 它看起来像这样:
df = data.frame(name=c("A", "B"),               
V1.g1=c(10,20),
V1.g2=c(40,30),
V2.g1=c(6,1),
V2.g2=c(3,7))

tidyR可以做到吗?

我可以通过 reshape 来做到这一点
reshape(df, idvar='name', timevar='group', direction='wide')

但是学习新东西总是好的。

最佳答案

从 tidyr 1.0.0 开始,您可以执行以下操作:

library(tidyr)

df = data.frame(name=c("A","A","B","B"),
group=c("g1","g2","g1","g2"),
V1=c(10,40,20,30),
V2=c(6,3,1,7))

pivot_wider(df, names_from = "group", values_from = c("V1", "V2"), names_sep = ".")
#> # A tibble: 2 x 5
#> name V1.g1 V1.g2 V2.g1 V2.g2
#> <fct> <dbl> <dbl> <dbl> <dbl>
#> 1 A 10 40 6 3
#> 2 B 20 30 1 7

创建于 2019-09-14 由 reprex package (v0.3.0)

关于r - tidyR 从长到宽的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29146287/

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