2016-01-26 1 views
-2

У меня есть 30 csv-файлов с именем 101.csv, 102.csv и т. Д. С четырьмя столбцами каждый, но с различным количеством строк. Мое намерение состоит в том, чтобы вычислить среднее и среднее значение четвертого столбца в каждом файле csv.Отдельные средние и медианные значения для столбцов 4 в списке кадров данных?

Я начал, сделав ListofDataFrames с:

listOfDataframes <- lapply(paste0(101:130, ".csv"), read.csv) 

Это выглядит следующим образом:

[[1]]    
1    contig02534_1_120507-bin0\t477\t585\t50  
2    contig02534_1_120507-bin0\t585\t2695\t0    
3    contig06975_1_120507-bin0\t0\t732\t100 
... 

[[2]] 
... 

Я хотел бы в конечном итоге с одной новой таблицы данных с кратким изложением 1) среднее значение столбца четыре и 2) медианное значение столбца четыре. И это необходимо будет для каждого кадра данных отдельно, как это, например:

  mean  median 
[[1]]  75  50 
[[2]]  65  100 

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

+1

Я думаю, вам нужно использовать 'sep =" \ t "' – akrun

+0

[см. Объяснение о том, как читать и объединять несколько файлов в один] (http://stackoverflow.com/questions/32888757/reading- множественные-файлы, в-р-передовая практика/32888918 # 32888918); после этого вы можете рассчитать желаемые значения, см.: [один] (http://stackoverflow.com/questions/32795456/how-to-summarize-a-data-frame-into-a-new-one-that-tells -means-of-separate-levels/32795497 # 32795497) & [two] (http://stackoverflow.com/questions/12064202/using-aggregate-for-multiple-aggregations/34240880#34240880) – Jaap

ответ

0

Мой обычный подход к этому идет что-то вроде

library(dplyr) 
lapply(101:130), 
        function(x){ 
        D <- read.csv(paste0(x, ".csv", sep = "\t") 
        D$set <- x 
       ) %>% 
    do.call("rbind", .) %>% 
    setNames(c("col1", "col2", "col3", "col4", "set")) %>% 
    group_by(set) %>% 
    summarise(mean = mean(col4), 
      median = median(col4)) 

Ваш пример не воспроизводимым, так что это не тестировалась.

Смежные вопросы