【发布时间】:2020-08-21 06:10:57
【问题描述】:
我目前有一个带有时间戳的数据框,我将其转换为 HMS
df$Time <- hms(df$Time)
我正在尝试改变数据集以包含一个包含一天中时间的分类列
ReceiptNo Time
99 14H 53M 55S
98 14H 53M 43S
97 14H 53M 28S
96 14H 53M 8S
95 14H 52M 53S
94 14H 52M 1S
93 14H 51M 41S
92 14H 51M 15S
91 14H 51M 0S
90 14H 50M 42S
我尝试了以下不同的变体来改变新列,但没有成功
df %>%
mutate(Time = case_when(
Time <= 6 ~ "Night",
Time <= 10 ~ "Morning",
Time <= 14 ~ "Midday",
Time <= 18 ~ "Afternoon",
Time > 19 ~ "Night" ))
【问题讨论】:
-
可以加
dput(head(df))吗? -
structure(list(ReceiptNo = c("101", "102", "103", "104", "105", "106"), Time = new("Period", .数据 = c(35, 51, 5, 26, 13, 43),年 = c(0, 0, 0, 0, 0, 0),月 = c(0, 0, 0, 0, 0, 0) , 天 = c(0, 0, 0, 0, 0, 0), 小时 = c(14, 14, 14, 14, 14, 14), 分钟 = c(54, 54, 55, 55, 56, 57 ))), row.names = c(NA, -6L), class= c("tbl_df", "tbl", "data.frame"))
-
与您的声明,例如
hour <= 14 ~ "Midday",直觉上我猜这意味着14:00:00应该是Midday和14:00:01应该跳转到Afternoon,对吧?请澄清一下。它使 Ronak 和我的答案有不同的输出。