将向量作为单个观察添加到data.frame

时间:2012-01-13 16:35:09

标签: r dataframe

我正在尝试在data.frame中保存大量的光谱测量值。每个测量都有许多属性以及两个光谱数据通道,每个通道有2048个数据点。我希望每个通道都是数据框中的单点数据。

这样的事情:

  timestamp           type integration channel1 channel2
1 2011-10-02 02:00:01 D    2000        (spec)   (spec)
2 2011-10-02 02:00:07 D    2000        (spec)   (spec)

其中每个(spec)是2048个值的向量。我根本无法让它工作,我现在求助于你们。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以将矩阵添加为data.frame字段之一,因此您必须将所有向量作为矩阵行。

DF <- data.frame(timestamp=1:3, type=LETTERS[1:3], integration=rep(2000, 3))
DF$channel1 <- matrix(rnorm(3*2048), nrow=3)
DF$channel2 <- matrix(rnorm(3*2048), nrow=3)
ncol(DF)# == 5

答案 1 :(得分:1)

我认为你想要的是可行的,但我可能无法完全理解你的问题。请注意Joris的建议,因为这可能是存储数据的更好方法。您可以通过将2048个值的向量存储在列表中然后作为列添加到数据框中来完成所需的操作。你的表格不容易导入(对我来说无论如何)和read.table所以我编写了自己的数据框和示例。

DF <- data.frame(timestamp=1:3, type=LETTERS[1:3], integration=rep(2000, 3))
DF$channel1 <- list(c(rnorm(2048)), c(rnorm(2048)), c(rnorm(2048)))
DF$channel2 <- list(c(rnorm(2048)), c(rnorm(2048)), c(rnorm(2048)))
相关问题