[英]Load data from package dynamically in R
我希望能夠以使用字符串插值的形式編寫以下內容。
r[[glue("fic_{data}")]] <- switch(
data,
"data" = fic::data,
"targets" = fic::targets
)
我嘗試過類似的東西
r[[glue("fic_{data}")]] <- eval(glue("fic::{data}"))
r[[glue("fic_{data}")]] <- eval(sym(glue("fic::{data}")))
r[[glue("fic_{data}")]] <- eval(glue("fic::{!!data}"))
在sym
和!!
的許多組合和位置中 .
有可能嗎?如果可以,怎么辦?
使用eval
,我們可能還需要parse
> eval(glue("collapse::wlddev"))
collapse::wlddev
只返回glue
object
> str(eval(parse(text = glue("collapse::wlddev"))))
'data.frame': 13176 obs. of 13 variables:
$ country: chr "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
..- attr(*, "label")= chr "Country Name"
$ iso3c : Factor w/ 216 levels "ABW","AFG","AGO",..: 2 2 2 2 2 2 2 2 2 2 ...
..- attr(*, "label")= chr "Country Code"
$ date : Date, format: "1961-01-01" "1962-01-01" "1963-01-01" "1964-01-01" ...
$ year : int 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 ...
...
或者使用parse_expr
的rlang
eval(rlang::parse_expr(glue("collapse::wlddev")))
另一種選擇是傳遞data
中的字符串以加載數據
data(list = "wlddev", package = "collapse")
head(wlddev)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.