Как объединить несколько рядов данных в R - PullRequest
1 голос
/ 28 января 2011

Я занимаюсь статистической обработкой экспериментальных данных с использованием R.

У меня есть несколько файлов, каждый с идентичной структурой. Каждая строка каждого файла содержит измерения, сделанные в одно и то же время для разных дат, поэтому общая структура выглядит следующим образом:

time C1 C2 C3 <br> 19:00 200 10.0 30 <br> 19:01 220 10.0 45 <br> ...

Что мне нужно, так это создать файл со сводкой значений одного столбца из нескольких файлов, поэтому у меня будет, например, среднее значение и стандартное отклонение C2 для каждого времени подряд в течение нескольких дней.

time avg dev <br> 19:00 205.0 30.0 <br> 19:01 220.0 10.0 <br> ...

Ответы [ 3 ]

4 голосов
/ 28 января 2011

В переполнении стека есть ряд вопросов, которые могут вам помочь.Попробуйте выполнить поиск по «[r] нескольким файлам» (пропустите кавычки).[R] ограничивает поиск только вопросами, помеченными как r.

Вот вопрос , который может получить то, что вам нужно

и вот пример поиска

2 голосов
/ 28 января 2011

Создать Files, вектор имен файлов, предполагая, что имена файлов имеют указанную форму или иным образом. Затем прочтите эти файлы, добавив read.table к каждому имени и связав результаты вместе, получив m, который содержит все строки всех таблиц. Наконец aggregate фрейм данных m.

Files <- Sys.glob("test_*.txt")
m <- do.call(rbind, lapply(Files, read.table, header = TRUE))
aggregate(m[-1], m[1], function(x) c(mean = mean(x), sd = sd(x)))
1 голос
/ 28 января 2011
library(plyr)    
# Combine all the data
    data=rbind(data1,data2,data3)

    # to get the mean
    ddply(data,.(time),numcolwise(mean))
    # to get the sd
    ddply(data,.(time),numcolwise(sd))

    # You can combine both statements above into a single call and put the output into a data frame
    resulting_data=data.frame(ddply(data,.(time),numcolwise(mean)),ddply(data,.(time),numcolwise(sd))[,-1])

    # depending on the number of columns you have, name the output accordingly. For your example
    names(resulting_data)c=('time','C1'..)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...