我有一个character
对象,它的时间格式类似于hh:mm:ss
。
例如,给定的矢量a
:
[1] "01|15|59" "1|47|16" "01|17|20" "1|32|34" "2|17|17"
我想计算每次测量的秒数。
对于第一个,您可以简单地执行:
a <- as.numeric(strsplit(a, "|", fixed=TRUE)[[1]])
a[1]*60*60 + a[2]*60 + a[3]
我可以使用一个循环来遍历char
对象的所有元素,但理想情况下我希望使用一个apply
函数,不知道如何实现它。
2条答案
按热度按时间8dtrkrch1#
您可以使用
sapply()
:或者将时间字符串转换为
POSIXct
并将其传递给as.numeric()
以获取秒数:x一个一个一个一个x一个一个二个x
数据
hrirmatl2#
注意
|
(竖线)需要在strsplit()
中进行转义。否则,它将充当逻辑“或”,导致每个字符上的拆分。请使用[|]
或\\|
。对于由
a <- strsplit(a, '[|]')
创建的列表对象,您可以使用sapply()
中的[[
函数提取每个列表元素。