遍历循环时,strptime返回NA值

时间:2018-06-27 15:25:33

标签: r format strptime

我正在遍历16个.csv文件的目录,并使用以下代码将其与另一个文件(df1)比较:

d1 <- read.csv(file.choose("C:/Me/MyFileLocation))
df1 <- as.data.frame(d1)
# this is where I use strptime for df1

files <- Sys.glob("*.csv")
for (i in files) {
  df2 <- as.data.frame(read.csv(i, header = FALSE))
  # this is where I use strptime for df2

所有文件都包含一个标题为“ Time”的列,该列具有日期,但是df1df2具有不同的日期格式,因此我使用format(strptime())将它们设置为相同的格式(并且更具可比性)格式。

df1$Time的格式为"5/29/2018 4:20:00 PM"

df2$Time的格式为"5/29/2018 4:20 PM"

这是我用来完全格式化它们的代码:

  df1$Time <- format(strptime(df1$Time, "%m/%d/%Y  %I:%M:%S %p"), format = "%m/%d/%Y %H:%M")
  df2$Time <- format(strptime(df2$Time, "%m/%d/%Y  %I:%M %p"), format= "%m/%d/%Y %H:%M")

运行代码时,df2总是返回整个Time列的NA值,因此我无法通过Time合并两个数据帧。我认为这不是格式问题,因为我制作了一个单独的脚本,在该脚本中,我手动输入了df2中的一些日期,并使用了相同的format(strptime())函数,并获得了成功的返回。因此,我认为,无论出于何种原因,这在循环中均不起作用。谁能解释为什么会这样以及如何解决?将Time列转换为类字符也无济于事。

0 个答案:

没有答案