在循环内更改时间格式

时间:2016-04-05 11:18:44

标签: r timestamp posixct

我有一个包含多列的长文本文件,其中第一列包含时间戳。格式如下:2016-02-19T06:27:48

我尝试将其转换为POSIXct格式:

test1 <- "2016-02-19T06:27:48"
z <- as.POSIXct(test1,format="%Y-%m-%dT%H:%M:%S")
> str(z)
 POSIXct[1:1], format: "2016-02-19 06:27:48"

哪个有效。现在在循环中执行此操作将不起作用,相应的列将不会转换为POSIXct格式,但仍保留为字符(因此将无法工作)。这里有一些可重现的代码:

test <- c("2016-02-19T06:27:48",
"2016-03-19T06:27:48",
"2016-02-19T12:27:48",
"2016-02-19T06:45:48",
"2016-03-19T12:27:48")
test <- data.frame(test, stringsAsFactors = FALSE)

for(i in 1:nrow(test)) {
  test$test[i] <- as.POSIXct(test$test[i], format = "%Y-%m-%d %H:%M:%S")
}
print(test)

任何提示?我认为这不是一个大问题,但我找不到一个解决方案,即使在浏览stackoverflow几个小时之后也能正常工作。谢谢!

0 个答案:

没有答案