【发布时间】:2020-04-28 16:28:07
【问题描述】:
我正在从事一个涉及许多不同小标题的项目,所有这些小标题都有一个格式为 YYYYMM 的 period 变量。下面是我所有小标题的示例:
tibble_1 <- tibble::tibble(
period = c(201901, 201912, 201902, 201903),
var_1 = rnorm(4),
var_2 = rnorm(4)
)
但对于某些操作(即时间序列图),使用实际的 Date 变量会更容易。所以我使用 mutate 将 period 变量转换为如下日期:
tibble_1 %>%
dplyr::mutate(
date = lubridate::ymd(stringr::str_c(period, "01"))
)
因为我会经常这样做,而且日期转换不是我在调用 mutate 时要做的唯一更改,所以我想要一个用户定义的函数,我可以在 mutate 中调用它称呼。这是我的功能:
period_to_date <- function() {
lubridate::ymd(stringr::str_c(period, "01"))
}
我稍后会这样称呼:
tibble_1 %>%
dplyr::mutate(
date = period_to_date()
)
问题是,R 找不到句号对象(它本身并不是真正的对象,而是小标题的一部分)。
stri_c 中的错误(...,sep = sep,collapse = collapse,ignore_null = TRUE):找不到对象“句点”
我很确定我需要定义一个数据掩码,以便执行 period_to_date 的环境可以在它的父环境中查找对象(它应该始终是调用者环境,因为包含 period 变量的小标题是并不总是一样),但我似乎不知道该怎么做。
【问题讨论】: