我有一个数据集,其中每对行都具有相同的 x 和 y 坐标。我试图通过将第二行附加到第一行的末尾,基于这组常见单元格将它们组合在 R 中。这是现在的样子:
类型 | 长度 | 宽度 | x 坐标 | y坐标 |
---|---|---|---|---|
泳池 | 17.1 | 89.5 | 36.66 | 123.44 |
步枪 | 62.1 | 5.8 | 36.66 | 123.44 |
泳池 | 82.3 | 79.3 | 35.74 | 127.56 |
步枪 | 35.0 | 8.2 | 35.74 | 127.56 |
这就是我想要的样子:
类型 | 长度 | 宽度 | x 坐标 | y坐标 | 类型2 | 长度2 | 宽度2 |
---|---|---|---|---|---|---|---|
泳池 | 17.1 | 89.5 | 36.66 | 123.44 | 步枪 | 62.1 | 5.8 |
泳池 | 82.3 | 79.3 | 35.74 | 127.56 | 步枪 | 35.0 | 8.2 |
我对 r 非常缺乏经验,我不知道如何做到这一点。我尝试使用 tidyverse 和ivot_wider 函数将其从长格式转换为宽格式,但它似乎没有达到我想要的效果。感谢任何帮助,谢谢:)
如果您确定行对不存在任何问题,则一种简单的方法可能是奇数行和偶数行的列绑定子集:
df <- tibble::tribble(
~Type, ~Length, ~Width, ~x.coord, ~y.coord,
"Pool", 17.1, 89.5, 36.66, 123.44,
"Riffle", 62.1, 5.8, 36.66, 123.44,
"Pool", 82.3, 79.3, 35.74, 127.56,
"Riffle", 35, 8.2, 35.74, 127.56
)
cbind(df[seq(from = 1, to = nrow(df)-1, by = 2 ), ],
df[seq(from = 2, to = nrow(df), by = 2), 1:3] |> setNames(c("Type2", "Length2", "Width2")))
#> Type Length Width x.coord y.coord Type2 Length2 Width2
#> 1 Pool 17.1 89.5 36.66 123.44 Riffle 62.1 5.8
#> 2 Pool 82.3 79.3 35.74 127.56 Riffle 35.0 8.2
创建于 2023-11-30,使用 reprex v2.0.2