代码之家  ›  专栏  ›  技术社区  ›  lf_araujo

合并数据帧从文件名添加日期信息

r
  •  -2
  • lf_araujo  · 技术社区  · 6 年前

    我可以从政府收集的数据中获取信息,这些数据的结构不太有用。它的20个dfs看起来像:

    enter image description here

    每个df按年份命名,例如,x2006.csv导入到x2006 dataframe对象中。它们都有一个total行和一个total列,我稍后将处理这个问题。现在,我的问题是:

    • 如何合并这些dfs,并从数据帧名称中添加包含年份信息的列?
    2 回复  |  直到 6 年前
        1
  •  0
  •   Thomas Wire    6 年前
    startYear <- 1998
    endYear <- 2017
    
    myData <- data.frame()
    
    require(plyr)
    
    for (myYear in startYear:endYear){
        df <- get(paste0("X", as.character(myYear)))
    
        df$Year <- myYear
    
        myData <- rbind.fill(myData, df)
    }
    
        2
  •  1
  •   DJV    6 年前

    而不是使用循环 do.call :

    require(tidyverse)
    
    #Creating sample data set - 10 data.frames
    for (i in 1:9){
      assign(paste("x200", i, sep=""),
             data.frame(x = c(1:20)))
      }
    
    
    #Creating the big data.frame
    MyBigDataframe <- do.call(rbind.data.frame, mget(ls(pattern = "x20"))) %>% 
      rownames_to_column("file")