【发布时间】:2023-03-27 02:43:01
【问题描述】:
我有一个带有时间框架的数据框:
df <- data.frame(start_time = c("30.06.18 19:03", "07.09.19 14:20", "15.06.18 10:42"), stringsAsFactors = FALSE)
我想创建另一个变量来表示它是 2018 年还是 2019 年(其中 1 = 2018 和 2 = 2019)。我试过了……
df$Time <- ifelse(df %>% select(start_time:c(contains(".18"))), 1,
ifelse(df %>% select(start_time:c(contains(".19"))), 2, 0))
但我发现selection helpers apparently only work to selection variables。所以我有点不知所措。
非常感谢!
【问题讨论】:
-
我鼓励您在处理日期时使用包lubridate。函数 lubridate::year(start_time) 将自动获取年份,并且创建另一个变量会更容易:
data %>% mutate(new_column = ifelse(year(start_time)==2018,1,2)编辑:您可能需要重新映射数据格式才能使其工作,但 lubridate 具有转换数据到日期时间 (ymd_hms()) -
非常感谢!我不知道这个!