Merge many data frames from csv files, when ID column is implied?

后端 未结 1 1348
Happy的楠姐
Happy的楠姐 2020-11-29 07:28

I\'d like to merge a bunch of data frames together (because it seems many operations are easier if you\'re only dealing w/ one, but correct me if I\'m wrong).

Curren

相关标签:
1条回答
  • 2020-11-29 07:59

    My understanding is that you need to extract the ID from the filename, and then merge the imported csv with the existing dataframe.

    df1 <- read.csv(textConnection("ID, var1, var2
    A,  2,    2
    B,  4,    5"))
    
    # assuming the imported csv-files are in working directory
    filenames <- list.files(getwd(), pattern = "ID_[A-Z].csv")
    
    # extract ID from filename
    ids <- gsub("ID_([A-Z]).csv", "\\1", filenames)
    
    # import csv-files and append ID
    library(plyr)
    import <- mdply(filenames, read.csv)
    import$ID <- ids[import$Var1]
    import$Var1 <- NULL
    
    # merge imported csv-files and the existing dataframe
    merge(df1, import)  
    

    Result:

    ID var1 var2 time var4 var5
    1  B    4    5    0    1    2
    2  B    4    5    1    4    5
    3  B    4    5    2    1    6
    
    0 讨论(0)
提交回复
热议问题