Добавить вектор как отдельное наблюдение в data.frame - PullRequest
0 голосов
/ 13 января 2012

Я пытаюсь сохранить ряд спектральных измерений в 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 ]

2 голосов
/ 14 января 2012

Вы можете добавить матрицу в качестве одного из полей 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 голос
/ 13 января 2012

Я думаю, что вы хотите выполнимо, но, возможно, я не до конца понимаю ваш вопрос. Прислушайтесь к предложению Йориса, так как это может быть лучшим способом хранения ваших данных. Вы можете достичь того, чего хотите, сохраняя векторы значений 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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...