从 R 中的时间向量中减去 10 分钟?
Subtracting 10 minutes each from a vector of times in R?
我有一列时间是这样的:
"2:43::00 PM"
"2:43:01 PM"
"2:43:05 PM"
"2:43:06 PM"
"2:43:07 PM"
我想转到每一行并从每一行中减去 10 分钟,这样新的列看起来像这样:
"2:33::00 PM"
"2:33:01 PM"
"2:33:05 PM"
"2:33:06 PM"
"2:33:07 PM"
我正在使用
difftime(strptime(data$time[i],format="%H:%M:%S"),strptime("00:10:00",format="%H:%M:%S"))
,但未显示正确的结果。
我该如何解决这个问题?
尝试
format(strptime(str1, format = "%I:%M:%S %p") - 10*60, "%I:%M:%S %p")
#[1] "02:33:00 PM" "02:33:01 PM" "02:33:05 PM" "02:33:06 PM" "02:33:07 PM"
数据
str1 <- c("2:43:00 PM", "2:43:01 PM", "2:43:05 PM", "2:43:06 PM", "2:43:07 PM")
尝试减去时间段时使用 as.difftime
而不是 difftime
:
v <- as.POSIXct("2:43:01 PM", format="%I:%M:%S %p", tz="UTC") - as.difftime(10, units="mins")
#[1] "2016-11-18 14:33:01 UTC"
请注意,R 中的时间默认为 date/times,因此只是附加了当天。如果需要,您可以 format()
再次返回输出:
format(v, "%I:%M:%S %p")
#[1] "02:33:01 PM"
我有一列时间是这样的:
"2:43::00 PM"
"2:43:01 PM"
"2:43:05 PM"
"2:43:06 PM"
"2:43:07 PM"
我想转到每一行并从每一行中减去 10 分钟,这样新的列看起来像这样:
"2:33::00 PM"
"2:33:01 PM"
"2:33:05 PM"
"2:33:06 PM"
"2:33:07 PM"
我正在使用
difftime(strptime(data$time[i],format="%H:%M:%S"),strptime("00:10:00",format="%H:%M:%S"))
,但未显示正确的结果。
我该如何解决这个问题?
尝试
format(strptime(str1, format = "%I:%M:%S %p") - 10*60, "%I:%M:%S %p")
#[1] "02:33:00 PM" "02:33:01 PM" "02:33:05 PM" "02:33:06 PM" "02:33:07 PM"
数据
str1 <- c("2:43:00 PM", "2:43:01 PM", "2:43:05 PM", "2:43:06 PM", "2:43:07 PM")
尝试减去时间段时使用 as.difftime
而不是 difftime
:
v <- as.POSIXct("2:43:01 PM", format="%I:%M:%S %p", tz="UTC") - as.difftime(10, units="mins")
#[1] "2016-11-18 14:33:01 UTC"
请注意,R 中的时间默认为 date/times,因此只是附加了当天。如果需要,您可以 format()
再次返回输出:
format(v, "%I:%M:%S %p")
#[1] "02:33:01 PM"