gpt4 book ai didi

r - 如何在R中将一行拆分为3个较短的行

转载 作者:行者123 更新时间:2023-12-01 09:20:16 24 4
gpt4 key购买 nike

所以我在 R 中有一个这样的表:

id    col1    col2    col3    col4    col5     col6     col7     col8   col9 
101 1 1111 202 2 1120 5512 3 1221 900
102 1 2999 1110 2 2000 5000 3 80 200
103 1 1121 333 2 111 222 3 101 1000
.
.

我正在尝试将每个主题的长行分成多行,如下所示:

id   trial   col1   col2   
101 1 1111 202
101 2 1120 5512
101 3 1221 900
102 1 2999 1110
102 2 2000 5000
102 3 80 200
103 1 1121 333
103 2 111 222
103 3 101 1000

如果我是 R 新手,我将不胜感激。我想我想把 col 读成三元组,然后编译它们,但不知道如何去做。

最佳答案

您的数据的问题在于它以非常规的方式存储。通常,当数据从宽格式转换为长格式时,宽数据中的变量名称成为长数据中的数据点,因此称为数据透视表。为了克服这个问题,我建议您按如下方式转换数据:

d <- d[, !grepl("col[147]", names(d))] 

names(d)[-1] <- paste(sort(rep(1:3, 2)), paste0("col", 1:2))

完成此操作后,使用 tidyr 包 reshape 数据相对简单。

d %>%
gather(key, value, -id) %>%
separate(key, c("trial", "new"), sep = "\\s") %>%
spread(new, value)

关于r - 如何在R中将一行拆分为3个较短的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34404132/

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