【发布时间】:2026-01-09 09:05:01
【问题描述】:
我的问题是此处提出的问题的扩展 How to reshape data from long to wide format 所以我会用类似的方式来表达它。
不同之处在于我想将一个长数据表重新排列成一个list 的宽数据表。
dat <- data.table(
sim = rep(c(1,2), each=4),
time = rep(1:4, 2),
value1 = rnorm(8),
value2 = rnorm(8)
)
dat
sim time value1 value2
1 1 1 0.3407 0.5167
2 1 2 -0.7033 0.8416
3 1 3 -0.3795 -0.4717
4 1 4 -0.7460 0.8479
5 2 1 0.8981 -0.7163
6 2 2 -0.3347 -0.6849
7 2 3 0.5013 0.8941
8 2 4 -0.1745 0.0795
我想重塑它,以便我有一个名为value1、value2 ... value99 等的宽数据表的list...
l = list()
l[["value1"]]
sim 1 2 3 4
1 1 0.3407 -0.7033 -0.3795 -0.7460
5 2 -0.8981 -0.3347 -0.5013 -0.1745
l[["value2"]]
sim 1 2 3 4
1 1 0.5167 0.8416 -0.4717 0.8479
5 2 -0.7163 -0.6849 0.8941 0.0795
【问题讨论】:
-
datatable 标签有点模棱两可;你想要data.table(R 的
data.table包)吗?如果不是,那么这个标签不适合这个问题,可能更喜欢data.frame 用于 R 的框架。 -
我正在使用 data.table 包,是的。我错误地在代码中有数据框,谢谢
-
(您可以看到大量基于 dplyr 的答案,这会产生很大的不同 :-)
标签: r data.table reshape