可以将来自多个 .csv 文件(存储在同一文件夹中)的一列数据编译为一列吗?

parknrec1

我想从几个(很多!).csv 文件中取出一些列,并构建一个新的 .csv 文件,其中所有列都堆叠在一起。所有 .csv 文件都在一个文件夹中,除了一列数据外几乎完全相同。大多数列需要保持完全相同,但需要根据其中一列标题中的名称生成一个新列(这是唯一会更改的标题),我想删除一些不需要的列数据。这是我希望发生但简化为只有两个数据集的示例:

Data set 1
   X        date distance.code location.code Time1     unneeded.data
   1 2021/05/18             C          BSF1 0.715               999
   2 2021/05/18            30          BSF1 0.896               999
   3 2021/05/18            60          BSF1 0.803               999
   4 2021/05/18           120          BSF1 0.705               999
   5 2021/05/18             C          BSG1 0.563               999
   6 2021/05/18             C          BSG1 0.961               999
   7 2021/05/18            30          BSG1 0.833               999
   8 2021/05/18            60          BSG1 0.894               999
 
data set 2                                                                        
  X       date distance.code location.code  Time2     unneeded data
  1 2021/05/18             C          BSF1 0.806               999
  2 2021/05/18            30          BSF1 0.878               999
  3 2021/05/18            60          BSF1 0.625               999
  4 2021/05/18           120          BSF1 0.609               999
  5 2021/05/18             C          BSG1 0.766               999
  6 2021/05/18             C          BSG1 0.846               999
  7 2021/05/18            30          BSG1 0.856               999
  8 2021/05/18            60          BSG1 0.698               999

Combined datasets (this is what I want)                                                                           
  X       date distance.code location.code        timeperiod   Values
  1 2021/05/18             C          BSF1             Time1 0.715
  2 2021/05/18            30          BSF1             Time1 0.896
  3 2021/05/18            60          BSF1             Time1 0.803
  4 2021/05/18           120          BSF1             Time1 0.705
  5 2021/05/18             C          BSG1             Time1 0.563
  6 2021/05/18             C          BSG1             Time1 0.961
  7 2021/05/18            30          BSG1             Time1 0.833
  8 2021/05/18            60          BSG1             Time1 0.894
  1 2021/05/18             C          BSF1             Time2 0.806
  2 2021/05/18            30          BSF1             Time2 0.878
  3 2021/05/18            60          BSF1             Time2 0.625
  4 2021/05/18           120          BSF1             Time2 0.609
  5 2021/05/18             C          BSG1             Time2 0.766
  6 2021/05/18             C          BSG1             Time2 0.846
  7 2021/05/18            30          BSG1             Time2 0.856
  8 2021/05/18            60          BSG1             Time2 0.698 

如您所见,时间列的唯一标题已移至新列。我一直在尝试通过从文件夹中的所有文件创建一个列表,然后尝试将它们与 rbind 绑定来执行此过程或此过程的某些部分。

temp <- list.files(pattern="*.csv")
myfiles = lapply(temp,read.csv)

df <- do.call(rbind, myfiles)

这不起作用,但似乎应该这样做。此外,这甚至无法完成我想要的所有操作,但我不确定如何获取具有唯一时间码的新列。我认为这可能是一种凌乱的方式,我希望有一个更优雅的解决方案。谢谢你的帮助。

罗纳克·沙阿

您可以select使用最终数据中的所需列并以长格式获取数据pivot_longer使用map_df您可以将列表合并到一个数据框中。

library(dplyr)
library(purrr)

temp <- list.files(pattern="*.csv")
myfiles = lapply(temp,read.csv)

cols_to_keep <- c('X', 'date','distance.code', 'location.code')

combine_data <- map_df(myfiles, ~.x %>% 
      select(all_of(cols_to_keep), starts_with('Time')) %>%
      pivot_longer(cols = starts_with('Time'), 
                   names_to = 'timeperiod', 
                   values_to = 'Values'))

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

存储在同一文件夹中的多个csv的降价功能

从同一文件夹中的多个文件创建一个 csv 文件

在同一文件夹中的多个CSV文件中更改定界符,并将它们写入新文件夹

更改 R 中多个 .csv 文件中的同一列

在同一目录中的多个CSV文件中删除前两列和最后一列

Google Spread Sheet Export CSV位于同一文件夹中

文件名来自同一文件夹中的其他文件

如何在Python中合并来自多个文件夹的多个CSV文件?

使用Dictionary metod集成来自多个csv文件的数据

Git:同一文件夹中的多个存储库,包含通用文件和代码

忽略同一文件夹中多个文件中的字符

是否可以从存在Azure功能的同一文件夹中读取文件

将同一文件夹中的多个文件读取到不同的数据框

从多个CSV文件计算一列的平均值

如何在同一文件夹中创建多个vue应用

C#:捕获多个图像并保存在同一文件夹中?

Excel VBA-同一文件夹中的多个Dir()

如何在多个csv文件中获取每一列的唯一值

根据另一列中的分组,将csv文件/ pandas数据帧拆分为多个文件

mysql可以将csv或其他txt文件导入一列吗?

合并来自多个子文件夹的同名csv文件

如何在具有不同条目但同一列的文件夹中合并不同的 csv 文件?

Python - 如何将多个变量存储在 .csv 文件的一列中,然后将这些变量读入列表

有没有一种方法可以绘制CSV文件中的数据,而同一列中每10个数据点在同一图中是不同的线?

如何基于一列拆分CSV文件并创建多个CSV文件

将来自多列的多个条件组合到一个新列中

如何在R中合并多个.csv文件,并为每个数据集的名称添加一列?

在单个文件中合并多个 CSV 文件并在第一列中添加每个 CSV 的列名

将同一文件复制到多个不同的文件夹 PowerShell