如何从包含数据和名称的数据框中创建具有指定行和列名的矩阵

时间:2018-10-21 21:29:18

标签: r dataframe matrix

如果我有这样的数据框:

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作为列名将其转换为矩阵的最佳方法是什么?

我认为会有一个转换数据帧并以某些列/行作为col / row名称参数的函数,但我没有发现。

奖金问题:每个ID是否需要一个不同的矩阵?是否需要创建3D阵列或类似的阵列?我该怎么办?

1 个答案:

答案 0 :(得分:1)

首先设置行名,然后将其转换为矩阵:

as.matrix(data.frame(dataframe[-1], row.names = dataframe$Date))

另一种可能性是使用zoo或xts对象。这将为数据创建一个矩阵,并为日期定义一个索引属性。生成的对象属于zoo类,可以通过zoo软件包的功能对其进行操作。

library(zoo)
z <- read.zoo(dataframe)