【发布时间】:2018-10-21 21:29:18
【问题描述】:
如果我有这样的数据框:
dataframe <- data.frame(Date = seq(as.Date("2018/01/01"), by = "day", length.out = 5),
ID1 = c(1, 2, 3, 4, 5),
ID2 = c(6, 7, 8, 9, 10))
> dataframe
Date ID1 ID2
1 2018-01-01 1 6
2 2018-01-02 2 7
3 2018-01-03 3 8
4 2018-01-04 4 9
5 2018-01-05 5 10
将其转换为矩阵的最佳方法是什么,观察作为数据,日期作为行名,ID 作为列名?
我认为会有一个函数可以转换数据帧并将某些列/行作为列/行名称的参数,但我还没有找到。
额外问题:我是否需要为每个 ID 设置不同的矩阵?我需要创建一个 3D 数组或类似的吗?我怎么能这样做?
【问题讨论】:
-
为什么需要这个矩阵?
-
row.names(dataframe) = dataframe$Date; dataframe = as.matrix(dataframe[,-1]) -
G5W 的上述解决方案完美运行。基本上,我只需要根据 Date 列分配行名,然后将 df 的适当索引转换为矩阵。列名是自动取的。