无法使用 R 从日期中提取日期和月份
unable to extract day and month from date using R
我有一个如下所示的数据框
test_df <- data.frame("subject_id" = c(1, 1, 1, 2),
"date_1" = c("8/6/2009 11:54", "28/3/2009 19:54", "18/2/2009 1:54", "11/3/2009 2:54"))
我想从 date_1
字段中提取 month
和 day
。所以,我尝试了以下
test_df %>%
mutate(date_1 = lubridate::dmy_hm(date_1),
without_year = format(date_1, "%d/%m"))
但是,这会引发如下所示的错误
Error in format.default(date_1, "%d/%m") :
invalid 'trim' argument
我希望我的输出如下所示
test_df %>%
mutate(
asDate=lubridate::dmy_hm(date_1),
justDayMonth=paste0(lubridate::day(asDate), "/", lubridate::month(asDate)
)
)
subject_id date_1 asDate justDayMonth
1 1 8/6/2009 11:54 2009-06-08 11:54:00 8/6
2 1 28/3/2009 19:54 2009-03-28 19:54:00 28/3
3 1 18/2/2009 1:54 2009-02-18 01:54:00 18/2
4 2 11/3/2009 2:54 2009-03-11 02:54:00 11/3
使用 base-R
format( as.POSIXct(test_df$date_1, format= "%d/%m/%Y %H:%M"), "%d/%m")
[1] "08/06" "28/03" "18/02" "11/03"
您也可以尝试 dplyr
和 base R
:
test_df %>% mutate(date_1=as.Date(test_df$date_1,format = '%d/%m/%Y %H:%M'),
daymonth=format(date_1,'%d/%m'))
subject_id date_1 daymonth
1 1 2009-06-08 08/06
2 1 2009-03-28 28/03
3 1 2009-02-18 18/02
4 2 2009-03-11 11/03
我有一个如下所示的数据框
test_df <- data.frame("subject_id" = c(1, 1, 1, 2),
"date_1" = c("8/6/2009 11:54", "28/3/2009 19:54", "18/2/2009 1:54", "11/3/2009 2:54"))
我想从 date_1
字段中提取 month
和 day
。所以,我尝试了以下
test_df %>%
mutate(date_1 = lubridate::dmy_hm(date_1),
without_year = format(date_1, "%d/%m"))
但是,这会引发如下所示的错误
Error in format.default(date_1, "%d/%m") :
invalid 'trim' argument
我希望我的输出如下所示
test_df %>%
mutate(
asDate=lubridate::dmy_hm(date_1),
justDayMonth=paste0(lubridate::day(asDate), "/", lubridate::month(asDate)
)
)
subject_id date_1 asDate justDayMonth
1 1 8/6/2009 11:54 2009-06-08 11:54:00 8/6
2 1 28/3/2009 19:54 2009-03-28 19:54:00 28/3
3 1 18/2/2009 1:54 2009-02-18 01:54:00 18/2
4 2 11/3/2009 2:54 2009-03-11 02:54:00 11/3
使用 base-R
format( as.POSIXct(test_df$date_1, format= "%d/%m/%Y %H:%M"), "%d/%m")
[1] "08/06" "28/03" "18/02" "11/03"
您也可以尝试 dplyr
和 base R
:
test_df %>% mutate(date_1=as.Date(test_df$date_1,format = '%d/%m/%Y %H:%M'),
daymonth=format(date_1,'%d/%m'))
subject_id date_1 daymonth
1 1 2009-06-08 08/06
2 1 2009-03-28 28/03
3 1 2009-02-18 18/02
4 2 2009-03-11 11/03