我有一个列,我已经使用as.date
更改为DATE> test_subset$Date <- as.Date(test_subset$Date, "%d/%m/%Y")
下一列将数字数据保存为与相邻日期列对应的时间。我遇到的问题是它继续将当前日期插入此时间列 - 我指定列“TIME”
> test_subset[[2]] <- strptime(test_subset[[2]], "%H:%M:%S")
但结果会将当前日期附加到时间。
答案 0 :(得分:1)
正在插入日期,因为您正在使用strptime()
。您可以使用format()
,因为您不一定需要特殊课程。如果我们有一个示例向量x
,
x <- Sys.time() + 0:5
#[1] "2015-03-05 07:08:27 PST" "2015-03-05 07:08:28 PST"
#[3] "2015-03-05 07:08:29 PST" "2015-03-05 07:08:30 PST"
#[5] "2015-03-05 07:08:31 PST" "2015-03-05 07:08:32 PST"
要获取日期,您可以使用
as.Date(format(x, "%F"))
# [1] "2015-03-05" "2015-03-05" "2015-03-05" "2015-03-05"
# [5] "2015-03-05" "2015-03-05"
要获得时间,请再次使用format()
,但使用%T
。
format(x, "%T")
# [1] "07:08:27" "07:08:28" "07:08:29" "07:08:30" "07:08:31"
# [6] "07:08:32"
如果事实证明你做需要第二列的时间等级,你可以使用chron::times()
来提供&#34;次&#34;类。
(time <- chron::times(format(x, "%T")))
# [1] 07:08:27 07:08:28 07:08:29 07:08:30 07:08:31 07:08:32
class(time)
# [1] "times"