首页 > 解决方案 > 在R中读取多个带有时间戳的csv文件

问题描述

我发现了几个关于如何将多个 csv 文件读入 R 的问题。但是,它们都是按顺序命名的。现在,我有带有时间戳的文件。所以我发现很难找到一种方法来阅读它们。有人可以帮忙吗?例如,它们看起来像这样:

99_Experiment Version A_2020-06-02_12h26.48.883.csv

我不需要日期,它只是自动生成的。有没有简单的方法可以去除?然后所有文件都将以相同的格式命名(_Experiment Version A.csv,前面有升序数字),我也许可以使用其他帖子之一来阅读它们

标签: rcsvfiletimestamp

解决方案


以下是您可以尝试的一些选项,具体取决于您要将数据导入 R 的方式。

注意:确保将您的工作主管设置为您的文件包含在该setwd()功能中的文件夹。

下面将导致每个数据框作为单个列表中的单独元素:

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

如果您想将这些列表元素组合成一个数据框,您可以使用do.call(rbind,...)dplyr::bind_rows()或等函数data.table::rbindlist()

如果您真的希望您的.csv文件作为单独的数据框,您可以执行以下操作assign()

temp = list.files(pattern="*.csv")
for (i in 1:length(temp)) assign(temp[i], read.csv(temp[i]))

或者您可以使用以下不依赖于该assign()函数的代码:

temp = list.files(pattern="*.csv")
list2env(
  lapply(setNames(temp, make.names(gsub("*.csv$", "", temp))), 
         read.csv), envir = .GlobalEnv)

我希望这有帮助!


推荐阅读