将日期更改为该月的最后一天

时间:2021-04-11 10:04:07

标签: r

我尝试将字符变量更改为类 Date 的变量,然后将其更改为该月的最后一天。

data %>% mutate("Month"= as.Date(paste(Month,"-01",sep=""))) -> data
data$Month <- paste(format(data$Month, format="%Y-%m"),"-", days_in_month(data$Month), sep="")

这在通过控制台运行时有效,但是当我尝试编织到 pdf 时我得到

<块引用>

days_in_month(data$Month) 中的错误: 找不到函数“days_in_month” 调用: ... withCallingHandlers -> withVisible -> eval -> eval -> paste 另外: 警告信息: 在 has_crop_tools() 中: 工具未安装或不在 PATH 中:ghostcript -> 结果,图形裁剪将被禁用。 执行停止

我想保留 as.Date 和 days_in_month() 但我不确定我做错了什么,是否可以将第二行代码加入第一行?

2 个答案:

答案 0 :(得分:0)

尝试添加:

library(lubridate)

在该命令之前的某个块中。它应该可以工作。

答案 1 :(得分:0)

if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, lubridate)

data <- tribble( ~ id, ~ Month,
                 1, "2020-04",
                 2, "2020-05",
                 3, "2020-12")
data %>%
  mutate(Month = ymd(paste0(Month, "-01")),
         Month = Month + days(days_in_month(Month) - 1))
#> # A tibble: 3 x 2
#>      id Month     
#>   <dbl> <date>    
#> 1     1 2020-04-30
#> 2     2 2020-05-31
#> 3     3 2020-12-31