R从时间戳记提取时间,然后另存为新列

时间:2019-01-04 15:02:29

标签: r

请有人能告诉我我要去哪里错了。我有下面的代码来提取小时,分钟和秒。没用我收到错误消息:

  

UseMethod(“ mutate_”)中的错误:没有适用于'mutate_'的方法   应用于“功能”类的对象

lubridate::ymd_hms(as.character(d1$timestamp, tz = "UTC"))

df %>% mutate(hours=hour(strptime(d1$timestamp, %H:%M')) %>% 
as.character() )

2 个答案:

答案 0 :(得分:0)

我会检查(尝试使用function)是否已正确加载了使用该功能的软件包-并以正确的顺序进行。
如果您是从dplyr呼叫mutate,请尝试dplyr::mutate而不是mutate。如果那行得通,那可能仅仅是您必须检查dplyr之后是否从另一个软件包中加载了类似的命名函数,并在合适的情况下更改了加载它们的顺序。

答案 1 :(得分:0)

也许这可以帮助您

# some fake data
df <- data.frame(a = 1, timestamp = '2018-11-11 12:13:14')

# convert as data
library(lubridate)
df$timestamp <- ymd_hms(as.character(df$timestamp, tz = "UTC"))

# add the hour:minutes column
library(dplyr)
df %>% mutate(hour_ = format(df$timestamp,'%H:%M'))
  a           timestamp hour_
1 1 2018-11-11 12:13:14 12:13

或仅在一个dplyr链中:

df %>%
 mutate(hour_ = format(ymd_hms(as.character(df$timestamp, tz = "UTC")),'%H:%M'))