【发布时间】:2019-11-27 15:35:46
【问题描述】:
此代码有效(需要几小时分秒,并且只转换为秒):
library(lubridate)
library(tidyverse)
original_date_time<-"2018-01-3111:59:59"
period_to_seconds(hms(paste(hour(original_date_time), minute(original_date_time),second(original_date_time), sep = ":")))
我有这个小标题:
df<-data.frame("id"=c(1,2,3,4,5), "Time"=c("1999-12-31 10:10:10","1999-12-31 09:05:13","1999-12-31 00:05:25","1999-12-31 07:04","1999-12-31 03:05:07"))
tib<-as_tibble(df)
tib
结果:
# A tibble: 5 x 2
id Time
<dbl> <fct>
1 1 1999-12-31 10:10:10
2 2 1999-12-31 09:05:13
3 3 1999-12-31 00:05:25
4 4 1999-12-31 07:04
5 5 1999-12-31 03:05:07
现在我想将上面更改时间的代码应用到tib$Time 的每个单元格。我试过了:
time_converted_data_<-lapply(tib$Time, period_to_seconds(hms(paste(hour(tib$Time), minute(tib$Time),second(tib$Time), sep = ":"))))
但它给了我错误:
Error in match.fun(FUN) :
c("'period_to_seconds(hms(paste(hour(tib$Time), minute(tib$Time), ' is not a function, character or symbol", "' second(tib$Time), sep = \":\")))' is not a function, character or symbol")
如何解决这个问题?我想要 R basic 和 tidyverse 两个版本。
【问题讨论】:
-
lapply(tib$Time, function(x) period_to_seconds(hms(paste(hour(x), minute(x), second(x), sep = ":"))))。对于每个tib$Time应用function(x)。
标签: r function functional-programming tidyverse