【发布时间】:2019-01-11 02:57:41
【问题描述】:
我正在寻找更通用的 data.frame (table 或 tibble) 扩展。该代码将更好地解释我的意思。这是我将 dt 扩展为 mean 和 sd 列的时候。
dt <- tibble::tibble(
mean = c(10,20,30),
sd = c(1,2,3),
median = c(3,4,5)
)
dt %>% tidyr::expand(., mean, sd)
我正在搜索更通用的东西,比如这个,它不起作用:
dt %>% tidyr::expand(., list("mean", "sd"))
即使我可以指定更复杂的扩展逻辑(也不起作用):
exp.cols <- dt %>% names(.) %>% .[stringr::str_detect(., "d")]
dt %>% tidyr::expand(., exp.cols)
数据可能来自外部,因此无法过滤然后在所有列上展开。
【问题讨论】:
-
用 syms 包裹起来
dt %>% tidyr::expand(., !!! rlang::syms(list("mean", "sd")))