将多个CSV合并到一个数据框中

ua

我有1个文件夹,其中包含100多个csv文件,每个文件夹具有不同的列名(15个列名)和不同的文件名。示例如下:

[1] "Data/Yahoo_2014.csv"   "Data/Yahoo_2015.csv"  
[3] "Data/Yahoo_2016.csv"   "Data/Yahoo_2017.csv"  
[5] "Data/Yahoo_2018.csv"   "Data/Yahoo_2019.csv"  
[7] "Data/Yahoo_2020.csv"   "Data/Google_2014.csv"
[9] "Data/Google_2015.csv"  "Data/Google_2016.csv"

etc

每个csv具有不同的列名。雅虎数据示例

Date Yahoo

对于Google

Date Google

唯一相似的是第一列(日期)。我想将所有这些数据合并到R中的一个csv文件中,以便继续进行分析。结果应如下所示:

Date Yahoo Google
1   2014-01-05  75  50
2   2014-01-12  84  6
3   2014-01-19  81  3
4   2014-01-26  82  35

我已经看过StackOverflow中的其他问题,但没有发现类似的问题。我想出了这个解决方案,但由于它们具有不同的列名,因此无法使用。

data <- read.csv(paste0("Data/","Yahoo_2014.csv"),
                       skip=2, 
                       na.strings="<1")

allFileNames <- list.files("Data")
All <- data.frame(matrix(, nrow=0, ncol=3))
names(All) <- c("Date","Yahoo","Google")
for (filename in allFileNames) {
  fullFilename <- paste0("Data/",filename)
  Data <- read.csv(fullFilename,
                         skip=2, 
                         na.strings="<1")
  names(trendsData) <- c("Date","Yahoo","Google")
  All <- rbind(All,Data)
}
达里奥

编辑

如果这是一个经常运行的脚本,那么为了避免增加对象,应该真正提出一个替代方案

假设Date在第一列中始终有一个命名列,而总共总共只有两列。

library(dplyr)
library(tidyr)
All <- bind_rows(sapply(allFileNames, function(x) {
    Data <- read.csv(filename,
               skip=2, 
               na.strings="<1",
               stringsAsFactors=FALSE)

    Data$site <- gsub(".*[[:punct:]]([A-z]+)_.*", "\\1", filename)
    names(Data) <- c("Date", "values", "site")
    return(Data)
})) %>%
  pivot_wider(names_from=site,
            values_from=values)

All

较旧的答案:

allFileNames <- list.files("Data", full.names = TRUE)
All <- read.csv(allFileNames[1]),
                skip=2, 
                na.strings="<1",
                stringsAsFactors=FALSE)
All$site <- gsub(".*[[:punct:]]([A-z]+)_.*", "\\1", allFileNames[1)
names(All) <- c("Date", "values", "site")

for (filename in allFileNames[-1]) {
  Data <- read.csv(filename,
                   skip=2, 
                   na.strings="<1",
                   stringsAsFactors=FALSE)
  
  Data$site <- gsub(".*[[:punct:]]([A-z]+)_.*", "\\1", filename)
  names(Data) <- c("Date", "values", "site")

  All <- rbind(All, Data)
}

library(dplyr)
library(tidyr)
All <- All %>%
  pivot_wider(names_from=site,
              values_from=values)
All

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将多个数据框合并到一个csv文件中,每个数据框用一个空行分隔

来自分类Dev

如何将多个数据框合并到一个表中并导出到Excel?

来自分类Dev

ValueError:无法处理非唯一的多索引!尝试将多个数据框中的列合并到一个数据框中时

来自分类Dev

将R中的两个列表合并到一个数据框中

来自分类Dev

将全局环境中的多个数据帧合并到一个文件

来自分类Dev

将多个文件读入并合并或合并到公共ID列的一个数据帧中

来自分类Dev

如何将多个json / python字典合并到1个数据框中

来自分类Dev

将多行合并到一个数据框的单个单元格

来自分类Dev

根据Python中的多个条件,将一列从多个数据框合并到另一数据框

来自分类Dev

如何将一个Numpy数组合并到多个数据帧

来自分类Dev

将名称相似的文件合并到一个数据框中

来自分类Dev

Mongodb Aggregate:将多个键合并到一个数组中

来自分类Dev

根据熊猫索引将熊猫列从数据框合并到另一个数据框

来自分类Dev

将许多XML文件合并到R中的一个数据帧中

来自分类Dev

将许多XML文件合并到R中的一个数据帧中

来自分类Dev

如何将一个数据框合并到另一个数据框,插入不存在的行?

来自分类Dev

将多个.txt文件合并到一个csv中

来自分类Dev

将多个csv文件导入熊猫并将它们合并到一个DataFrame中

来自分类Dev

将多个.txt文件合并到一个csv中

来自分类Dev

将多个 CSV 合并到一个 DataFrame 中,文件名作为列名

来自分类Dev

将多个ObservableList合并到一个列表中

来自分类Dev

将多个查询合并到一个输出中

来自分类Dev

使用Microsoft Access SQL将多个列中的数据合并到一个列中

来自分类Dev

Python:具有多个标题的 CSV 文件 - 合并为一个数据框?

来自分类Dev

来自多个临时表的数据将合并到一个临时表中

来自分类Dev

来自多个临时表的数据将合并到一个临时表中

来自分类Dev

使用setDT将一个数据帧中的许多列合并到另一数据帧中

来自分类Dev

如何将多个数据框日期列合并为R中的一个堆叠日期列

来自分类Dev

将excel文件读入R并将其中的所有工作表合并到一个数据框中

Related 相关文章

  1. 1

    将多个数据框合并到一个csv文件中,每个数据框用一个空行分隔

  2. 2

    如何将多个数据框合并到一个表中并导出到Excel?

  3. 3

    ValueError:无法处理非唯一的多索引!尝试将多个数据框中的列合并到一个数据框中时

  4. 4

    将R中的两个列表合并到一个数据框中

  5. 5

    将全局环境中的多个数据帧合并到一个文件

  6. 6

    将多个文件读入并合并或合并到公共ID列的一个数据帧中

  7. 7

    如何将多个json / python字典合并到1个数据框中

  8. 8

    将多行合并到一个数据框的单个单元格

  9. 9

    根据Python中的多个条件,将一列从多个数据框合并到另一数据框

  10. 10

    如何将一个Numpy数组合并到多个数据帧

  11. 11

    将名称相似的文件合并到一个数据框中

  12. 12

    Mongodb Aggregate:将多个键合并到一个数组中

  13. 13

    根据熊猫索引将熊猫列从数据框合并到另一个数据框

  14. 14

    将许多XML文件合并到R中的一个数据帧中

  15. 15

    将许多XML文件合并到R中的一个数据帧中

  16. 16

    如何将一个数据框合并到另一个数据框,插入不存在的行?

  17. 17

    将多个.txt文件合并到一个csv中

  18. 18

    将多个csv文件导入熊猫并将它们合并到一个DataFrame中

  19. 19

    将多个.txt文件合并到一个csv中

  20. 20

    将多个 CSV 合并到一个 DataFrame 中,文件名作为列名

  21. 21

    将多个ObservableList合并到一个列表中

  22. 22

    将多个查询合并到一个输出中

  23. 23

    使用Microsoft Access SQL将多个列中的数据合并到一个列中

  24. 24

    Python:具有多个标题的 CSV 文件 - 合并为一个数据框?

  25. 25

    来自多个临时表的数据将合并到一个临时表中

  26. 26

    来自多个临时表的数据将合并到一个临时表中

  27. 27

    使用setDT将一个数据帧中的许多列合并到另一数据帧中

  28. 28

    如何将多个数据框日期列合并为R中的一个堆叠日期列

  29. 29

    将excel文件读入R并将其中的所有工作表合并到一个数据框中

热门标签

归档