Fly*_*yto 12 datetime r posixct
我有一个数据文件,其中有三列:
20010101 000000 0.833
20010101 000500 0.814
20010101 001000 0.794
20010101 001500 0.772
...
Run Code Online (Sandbox Code Playgroud)
人眼相当清楚,前两个是日期和时间.我需要将它们转换为POSIXct(如果它更好的话,还是其他的东西,但我在R中处理时间戳的有限经验是使用POSIXct).通常情况下,使用read.table将其拉入,我会使用:
df$DateTime <- as.POSIXct(paste(df$Date, df$Time), format="%Y%m%d %H%M%S")
Run Code Online (Sandbox Code Playgroud)
但是,第二列似乎失去了它的前导零(可能通过类型强制?),因此它无法正常工作.
我看合并日期整数和时间因素POSIXct中的R和转换日期和时间数据的两列一个,但两者都使用时间带分隔符,如:,所以不要有同样的问题.
如何将这些列转换为POSIXct,好吗?
Dir*_*tel 16
你非常接近.以下"简单"强制将前两列作为字符串读取,从而保存前导零.
R> df <- read.table(text="20010101 000000 0.833
20010101 000500 0.814
20010101 001000 0.794
20010101 001500 0.772",
+ header=FALSE, colClasses=c("character", "character", "numeric"),
+ col.names=c("Date", "Time", "Val"))
R> df
Date Time Val
1 20010101 000000 0.833
2 20010101 000500 0.814
3 20010101 001000 0.794
4 20010101 001500 0.772
Run Code Online (Sandbox Code Playgroud)
现在你正在尝试"正常工作":
R> df$DateTime <- as.POSIXct(paste(df$Date, df$Time), format="%Y%m%d %H%M%S")
R> df
Date Time Val DateTime
1 20010101 000000 0.833 2001-01-01 00:00:00
2 20010101 000500 0.814 2001-01-01 00:05:00
3 20010101 001000 0.794 2001-01-01 00:10:00
4 20010101 001500 0.772 2001-01-01 00:15:00
R>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35681 次 |
| 最近记录: |