这里是数据的结构
我想要做的是将Time
的格式更改为POSIXct
。
这是我尝试过的。
a <- as.POSIXct(power_consumption$Time, "%H:%M:%S")
Error in as.POSIXlt.character(as.character(x), ...) :
字符串的格式不够标准明确(The format of the string is not standard enough)
a <- as.POSIXlt(power_consumption$Time, "%H:%M:%S")
Error in as.POSIXlt.character(as.character(x), ...) :
字符串的格式不够标准明确(The format of the string is not standard enough)
a <- strptime(power_consumption$Time, "%H:%M:%S")
head(a)
[1] NA "2017-07-07 17:24:00 CST" "2017-07-07 17:25:00 CST" "2017-07-07 17:26:00 CST" "2017-07-07 17:27:00 CST"
[6] "2017-07-07 17:28:00 CST"
我认为结果不对,因为Time
的结构只有时间。
如何将Time
转换为%H:%M:%S
?感谢
答案 0 :(得分:1)
根据定义,POSIX时间格式必须具有与之关联的日期。如果日期无关紧要,您可以按原样继续,并指定origin
日期,如果您关心哪个日期将设置为您提供的任意日期。
你可以按照@ HubertL的建议来构建完整的POSIX对象,这似乎是最合乎逻辑的选择。
或者,您可以使用chron::times()
将所有内容存储在HH:MM:SS对象中。还有hms::as.hms()
除非您有特定原因需要将日期和时间分开,否则只需构造完整的POSIX日期/时间对象。
此外,我应该补充一点,默认情况下,POSIXct / lt将指定一个日期(在本例中为今天的),如果你没有提供日期,那么所有人都说2017-07-07。
答案 1 :(得分:0)
@Ryan您需要从源重新加载数据框并将每列设置为正确的数据类型。 power_consumption
中的所有内容都应该是日期和时间之外的两倍。您将无法进行任何严肃的处理,因为所有数据都表示为因子。