Хранение вывода read.table в структуре данных

Я пробовал использовать векторы, массивы, списки и коллекции. Когда я позже обращаюсь к данным, кажется, что данные отлиты в какую-то одномерную структуру. Например.

Этот:

for (i in 1:length(argv)){
    temp= read.csv(file=argv[i], header= TRUE)   
    print( temp )
    input_tables[i]= temp
    print(input_tables[i])

Выдает это:

     V1 V2 V3 V4
1  1  5  9 13
2  2  6 10 14
3  3  7 11 15
4  4  8 12 16
[[1]]
[1] 1 2 3 4

  V1 V2 V3 V4
1  2 10 18 26
2  4 12 20 28
3  6 14 22 30
4  8 16 24 32
[[1]]
[1] 2 4 6 8

  V1 V2 V3 V4
1  4 20 36 52
2  8 24 40 56
3 12 28 44 60
4 16 32 48 64
[[1]]
[1]  4  8 12 16

Я просмотрел документацию для R (немного поиска в Google и функцию справки), и я не могу определить, какой объект возвращает read.table. Из моего предыдущего опыта я считаю, что это фрейм данных или матрица.

В любом случае, как я могу хранить эти выходные данные в какой-то структуре и не использовать ее? Или хотя бы не сбрасывать данные. Может быть там, как сейчас. Спасибо за ваше время. У меня есть обходной путь в моей текущей ситуации, но кажется, что это должно быть легко возможно.


person order    schedule 29.05.2012    source источник
comment
Этот пример не совсем воспроизводим, однако строка input_tables[i] <- temp помещает data.frame temp в list. Является ли argv вектором имен файлов? Попробуйте .list <- lapply(argv, function(.file){read.csv(.file, header = T)}); all_data <- do.call(rbind, .list)   -  person mnel    schedule 29.05.2012


Ответы (1)


read.csv вернет data.frame (как указано в ?read.csv, под value)

Два подхода к объединению нескольких файлов, предполагая, что argv является вектором имен файлов и что входные данные будут иметь одинаковое количество и порядок столбцов.

.list <- lapply(argv, read.csv, header = T)
all_data <- do.call(rbind, .list)

Или, используя plyr

library(plyr)
all_data <- ldply(argv, read.csv, header = T)
person mnel    schedule 29.05.2012
comment
Спасибо. Я видел упоминание lapply несколько раз, рад видеть, как он используется. - person order; 29.05.2012