我不知道如何将R中矩阵的行从字符转换为POSIXt或其他类似的类。这些是我的字符行:
[1] "2015.07.06 13.41.00.033" "2015.07.06 13.40.00.033" "2015.07.06 13.39.00.033"
[4] "2015.07.06 13.38.00.033" "2015.07.06 13.37.00.007" "2015.07.06 13.36.00.007"
[7] "2015.07.06 13.35.00.007" "2015.07.06 13.34.00.007" "2015.07.06 13.33.00.007"
[10] "2015.07.06 13.32.00.007" "2015.07.06 13.31.00.007" "2015.07.06 13.30.00.007"
[13] "2015.07.06 13.29.00.007" "2015.07.06 13.28.00.007" "2015.07.06 13.27.00.007"
[16] "2015.07.06 13.26.00.007" "2015.07.06 13.25.00.007" "2015.07.06 13.24.00.007"
[19] "2015.07.06 13.23.00.007"
答案 0 :(得分:1)
与list或data.frame不同,矩阵只能包含一种类型的数据。此外,矩阵(通常)仅包含原子类型*,这意味着您的POSIXct
对象将转换为数字。
> matrix(Sys.time())
[,1]
[1,] 1436191385
所以你的问题的答案是,“你不能用矩阵做到这一点。”请改用data.frame,或者在问题中提供更多详细信息,说明您实际尝试解决的问题。
*矩阵可以包含列表元素,这些列表元素不是原子对象,但这是一种非常不寻常的情况,可能不是用户的意图。
答案 1 :(得分:0)
你可以尝试
options(digits.secs=6)
times <- strptime(times,"%Y.%m.%d %H.%M.%OS", tz= " ")
#> times
# [1] "2015-07-06 13:41:00.033" "2015-07-06 13:40:00.033" "2015-07-06 13:39:00.033" "2015-07-06 13:38:00.033" "2015-07-06 13:37:00.007"
# [6] "2015-07-06 13:36:00.007" "2015-07-06 13:35:00.007" "2015-07-06 13:34:00.007" "2015-07-06 13:33:00.007" "2015-07-06 13:32:00.007"
#[11] "2015-07-06 13:31:00.007" "2015-07-06 13:30:00.007" "2015-07-06 13:29:00.007" "2015-07-06 13:28:00.007" "2015-07-06 13:27:00.007"
#[16] "2015-07-06 13:26:00.007" "2015-07-06 13:25:00.007" "2015-07-06 13:24:00.007" "2015-07-06 13:23:00.007"
#> class(times)
#[1] "POSIXlt" "POSIXt"
times <-c("2015.07.06 13.41.00.033", "2015.07.06 13.40.00.033", "2015.07.06 13.39.00.033",
"2015.07.06 13.38.00.033", "2015.07.06 13.37.00.007", "2015.07.06 13.36.00.007",
"2015.07.06 13.35.00.007", "2015.07.06 13.34.00.007", "2015.07.06 13.33.00.007",
"2015.07.06 13.32.00.007", "2015.07.06 13.31.00.007" ,"2015.07.06 13.30.00.007",
"2015.07.06 13.29.00.007", "2015.07.06 13.28.00.007", "2015.07.06 13.27.00.007",
"2015.07.06 13.26.00.007", "2015.07.06 13.25.00.007", "2015.07.06 13.24.00.007",
"2015.07.06 13.23.00.007")
如果要将这些POSIXt条目用于数据的时间序列,一种方便的方法可能是将数据帧转换为xts
对象。
这可以通过例如
来实现library(xts)
my_xts <- xts(times, data)
其中data
是观察值,存储为数值,与上述时间点序列相对应。
希望这有帮助。