【问题标题】:Importing multiple csv files at the same time want the date data converted into (date and time) format in R同时导入多个csv文件希望R中的日期数据转换为(日期和时间)格式
【发布时间】:2020-11-17 14:54:45
【问题描述】:

我有 20 个 .csv 文件;都具有与图片中相同的标题。

我想同时导入一次。我想要将时间戳从字符格式转换为日期和时间格式。

我使用此代码导入所有 20 个文件,效果很好。

path <- "~/Google Drive/Plumeflowlabs test/Data from Plume 17 Nov 2020/"

files <- list.files(path=path, pattern="*.csv")

for(file in files)
{
  perpos <- which(strsplit(file, "")[[1]]==".")
  assign(
    gsub(" ","",substr(file, 1, perpos-1)),
    read.csv(paste(path,file,sep="")))

}

但是,它不包含转换日期的功能。

之后,我想通过时间戳将所有 20 个文件合并到一个数据帧中。

我也需要这方面的帮助。

【问题讨论】:

  • 我强烈建议使用数据框列表而不是assign。这将使使用它们变得更加容易,包括列转换和合并它们。 See my answer here for discussion and examples.
  • 我不知道如何在base R中做到这一点...解决方案可以包括包dplyrreadr(两者都是tidyverse的一部分)吗?
  • 谢谢,格雷戈尔。我总是不擅长创建循环功能。我会尝试使用代码,您的答案有很多看起来很有帮助的信息。今天我花时间手动逐个导入文件并更改日期格式。这需要时间,但我今天必须进行相关性分析,以了解我的至少三个空气污染设备(20 个文件中的三个)之间的一致性。

标签: r datetime import


【解决方案1】:

试试这个方法。由于没有共享数据,我无法对其进行测试。考虑到来自 @GregorThomas 的明智建议,最好将数据存储在这样的列表中:

#Code
path <- "~/Google Drive/Plumeflowlabs test/Data from Plume 17 Nov 2020/"
files <- list.files(path=path, pattern="*.csv")
#Function to load and transform date
myfun <- function(x)
{
  df <- read.csv(x,sep="")
  df$timestamp <- as.POSIXct(df$timestamp,format='%d/%m/%Y %H:%M',tz = 'GMT')
  return(df)
}
#Apply
List <- lapply(files,myfun)
#Names
names(List) <- files

名称是根据files 对象分配的。之后你就可以处理它们了。

【讨论】:

  • 谢谢鸭子。它向我显示了一个错误。 read.table 中的错误(file = file,header = header,sep = sep,quote = quote,:不允许重复的 'row.names'
  • @user1894845 尝试将此代码放在函数df &lt;- read.csv(x,sep="",row.names=NULL) 的第一行。由于没有共享数据,我看不到文件!让我知道这是否有效!
  • 谢谢,鸭子。它运作良好。我的理解是不会有数据框。所有 20 个文件都已添加为一个大列表。对我来说,做这样的过程是新的。如果我想按时间戳合并文件,这有点令人困惑。合并文件的想法是进行相关性分析,以测试这 20 台设备是否给出了良好的高一致性。相关性将针对每一列 (PM2.5)、(PM10)、(NO2) 进行分类。我以前只用两三个设备就可以做到这一点,这很容易。
  • @user1894845 之后,您可以分配名称,然后使用list2env(YourList,envir = .GlobalEnv),您将获得单独的数据帧!
  • @user1894845 这可以提示您合并列表中的数据框stackoverflow.com/questions/8091303/…
猜你喜欢
  • 1970-01-01
  • 2020-12-21
  • 2019-10-09
  • 1970-01-01
  • 2016-11-26
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多