Слияние и суммирование нескольких файлов CSV в R

Первый вопрос/сообщение. Надеюсь, я не дублировал это, а искал столько терминов, сколько смог придумать. Я уверен, что это будет неприятный момент, но вот:

Используя R, я пытаюсь прочитать несколько 100 файлов .csv, по два столбца в каждом, тип и прошедшее время, например:

Col1    Col2
Type A  11:20:15
Type B  29:40:34
Type C  45:13:26

Я пытаюсь объединить каждый файл в папке, чтобы создать один DF с суммой всех времен, но я рисую пустое место, очень ценю любые рекомендации по правильным функциям или решениям.

Вот где я нахожусь:

    files = list.files(pattern="*.csv")
    fileno <- length(files)

    for (i in 1:fileno){
    assign(files[i], read.csv(files[i]))
    ###Code to Read each "time" and Sum with current
    # TotalDF <- Time Value from Current loaded CSV "Summed" to TotalDF
    }

Если бы у меня было два файла:

Col1    Col2
Type A  11:20:15
Type B  29:40:34
Type C  45:13:26

Col1    Col2
Type A  5:00:00
Type B  3:00:00
Type C  8:00:00

Тогда TotalDF будет:

Col1    Col2
Type A  16:20:15
Type B  32:40:34
Type C  53:13:26

person NoobMat    schedule 20.01.2015    source источник
comment
Если вы хотите объединить их в том смысле, что merge означает в R, вы можете посмотреть здесь для некоторых идей.   -  person talat    schedule 20.01.2015


Ответы (1)


Вы можете загрузить их все в список и использовать Уменьшить.

# define a vector with the file paths
nameFolder <- "data"
vectorFiles <- list.files(nameFolder, full.names = TRUE)

# load each file and change the name of the second column
listDf <- lapply(vectorFiles, function(fileName){
  dfFile <- read.csv(fileName)
  names(dfFile)[2] <- fileName
  return(dfFile)
})

# merge the data frames on the column Col1
dfMerged <- Reduce(function(...) merge(..., by = "Col1"), listDf)
person Michele Usuelli    schedule 20.01.2015
comment
Это почти идеально, спасибо, это почти то, что мне нужно. Просто нужно объединить столбцы [2] и далее в общее количество, но я попытаюсь решить это самостоятельно в качестве учебного упражнения. - person NoobMat; 20.01.2015
comment
@NoobMat, если этот ответ работает для вас, рассмотрите возможность пометить его как ответ на ваш вопрос. - person Richard Erickson; 20.01.2015
comment
Привет, Ричард, спасибо. Сделал это, но оставляю за собой право вернуться, если мне не удастся резко объединить значения: о) Спасибо всем за помощь с первым ТАК набегом! - person NoobMat; 20.01.2015