r - 在R中将行堆叠为列
问题描述
我正在尝试将数据行堆叠成列,以便另一列中的变量重复。我想把这样的东西
tib <- tribble(~x, ~y, ~z, "a", 1,2, "b", 3,4)
> tib
# A tibble: 2 x 3
x y z
<chr> <dbl> <dbl>
1 a 1 2
2 b 3 4
进入
t <- tribble(~X, ~Y, "a", 1, "a", 2, "b", 3, "b", 4)
> t
# A tibble: 4 x 2
X Y
<chr> <dbl>
1 a 1
2 a 2
3 b 3
4 b 4
感谢您的帮助,如果我在某处错过了此解决方案,我们深表歉意。我进行了搜索,并尝试应用gather()、spread(),但无法解决。
解决方案
这是一个使用示例data.table::melt()
:
# Assuming your data is a data.frame
xyz <- data.frame(
x = c("a", "b"),
y = c(1, 3),
z = c(2, 4)
)
library(data.table)
melt(xyz, id.vars = "x")[c(1, 3)]
x value
1 a 1
2 b 3
3 a 2
4 b 4
推荐阅读
- java - 我们可以从 finally 块进行递归调用吗?
- amazon-web-services - 如何在 ALB HTTPS 端点上使用 Cognito 提供的“access_token”?
- firebase - 跨 url 前缀共享动态链接
- bash - bash 中的 XSLT 转换将 XPATH 值传递给输出文件名
- javascript - Angular 8 - 条件路由定义
- reactjs - 无法在 MDBDatatable 中填充 JSON 数据
- python - 一个函数中有两个函数?
- java - 摆脱 CompletableFuture
- amazon-web-services - 默认情况下,Application/ELB 的 HTTPCode_Target_5XX_Count 不存在
- java - @test java 排序程序的问题