在R中将一天的时间标记为上午、下午和晚上
如何为给定的时间戳标记一天中的时间(上午、下午和晚上) 初始数据 最终数据在R中将一天的时间标记为上午、下午和晚上,r,time,data-transform,wrangle,R,Time,Data Transform,Wrangle,如何为给定的时间戳标记一天中的时间(上午、下午和晚上) 初始数据 最终数据 您可以使用lubridate和cut来实现这一点 library(lubridate) # transform into date time column (if it is not already one) df$Time_stamp <- ymd_hms(df$Time_stamp) # create breaks breaks <- hour(hm("00:00", "6:00", "12:00",
您可以使用
lubridate
和cut
来实现这一点
library(lubridate)
# transform into date time column (if it is not already one)
df$Time_stamp <- ymd_hms(df$Time_stamp)
# create breaks
breaks <- hour(hm("00:00", "6:00", "12:00", "18:00", "23:59"))
# labels for the breaks
labels <- c("Night", "Morning", "Afternoon", "Evening")
df$Time_of_day <- cut(x=hour(df$Time_stamp), breaks = breaks, labels = labels, include.lowest=TRUE)
df
Id Time_stamp Time_of_day
1 3083188c 2016-08-29 13:10:51 Afternoon
2 924d500e 2016-08-29 09:22:33 Morning
3 ad4dd7ff 2016-08-25 20:29:35 Evening
库(lubridate)
#转换为日期时间列(如果尚未转换为日期时间列)
df$Time_邮票请看这里。然后你可以和=…@Christoph一起工作谢谢!如何创建bin基准时间类别(即上午12:00至上午5:00、上午5:00至下午12:00等
)
Id Time_stamp Time_of_day
3083188c 2016-08-29 13:10:51 Afternoon
924d500e 2016-08-29 09:22:33 Morning
ad4dd7ff 2016-08-25 20:29:35 Evening
library(lubridate)
# transform into date time column (if it is not already one)
df$Time_stamp <- ymd_hms(df$Time_stamp)
# create breaks
breaks <- hour(hm("00:00", "6:00", "12:00", "18:00", "23:59"))
# labels for the breaks
labels <- c("Night", "Morning", "Afternoon", "Evening")
df$Time_of_day <- cut(x=hour(df$Time_stamp), breaks = breaks, labels = labels, include.lowest=TRUE)
df
Id Time_stamp Time_of_day
1 3083188c 2016-08-29 13:10:51 Afternoon
2 924d500e 2016-08-29 09:22:33 Morning
3 ad4dd7ff 2016-08-25 20:29:35 Evening
df <- structure(list(Id = c("3083188c", "924d500e", "ad4dd7ff"),
Time_stamp = c("2016-08-29 13:10:51", "2016-08-29 09:22:33", "2016-08-25 20:29:35")),
.Names = c("Id","Time_stamp"),
class = "data.frame",
row.names = c(NA, -3L))