gpt4 book ai didi

r - 展平数据框并将行移至列

转载 作者:行者123 更新时间:2023-12-02 09:13:43 25 4
gpt4 key购买 nike

我有一个像这样的数据框:

df <- data.frame(
id = c(1, 1, 2, 2),
V1 = c(1:4),
V2 = c(5:8),
V3 = c(9:12))

打印到控制台看起来像这样:

#   id V1 V2 V3
# 1 1 1 5 9
# 2 1 2 6 10
# 3 2 3 7 11
# 4 2 4 8 12

现在,我想将其转换为以下形状:

#   id V1 V2 V3 V4 V5 V6
# 1 1 1 5 9 2 6 10
# 2 2 3 7 11 4 8 12

如何使用基本 R 或 tidyverse 来做到这一点?

最佳答案

一个可能的tidyverse解决方案

wide <- df %>%
group_by(id) %>%
mutate(obs = row_number()) %>%
gather(var, val, V1:V3) %>%
unite(comb, obs, var) %>%
spread(comb, val)

colnames(wide)[-1] <- paste("V", seq(1,ncol(wide) -1), sep = "")

# A tibble: 2 x 7
# Groups: id [2]
# id V1 V2 V3 V4 V5 V6
#1 1 1 5 9 2 6 10
#2 2 3 7 11 4 8 12

关于r - 展平数据框并将行移至列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49183585/

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