我之前也问过类似的问题(Link https://stackoverflow.com/questions/59440107/how-can-i-dynamically-create-new-variables-columns-on-databases-in-r-using-dplyr)。给出的答案效果很好。然而,事实证明,它并不完全适用于我的用例。
请考虑以下最小工作示例:
library(RSQLite)
library(dplyr)
library(dbplyr)
library(DBI)
library(stringr)
con <- DBI::dbConnect(RSQLite::SQLite(), path = ":memory:")
copy_to(con, mtcars, "mtcars", temporary = FALSE)
db <- tbl(con, "mtcars") %>%
select(carb) %>%
distinct(carb) %>%
arrange(carb) %>%
mutate(Q1=1, Q2=2, Q3=3, Q4=4) %>%
collect()
我对动态构建字符串感兴趣Q1=1, Q2=2, Q3=3, Q4=4
这样它就可以是Q1=1, Q2=2, ..., Qn = n
.
我的一个想法是像这样构建字符串:
n_par <- 4
str_c('Q', 1:n_par, ' = ', 1:n_par, collapse = ', ')
这样 n_par 可以是任何正数。然而,由于 dplyr 的非标准评估,我无法让它像那样工作。然而,这正是我所需要的。
有人可以帮忙吗?