[英]How to call internal dataset by a string in R package
I have included a few internal data sets during building a local R package such as data_abc, data_cdj, ..., data_mnp
.在构建本地 R package 期间,我包含了一些内部数据集,例如
data_abc, data_cdj, ..., data_mnp
。 Then I am attempting to write a function to call one of these datasets depending on the user's input argument p
which will abc
, cdj
, ...
, mnp
such as:然后我尝试编写一个 function 来调用这些数据集之一,具体取决于用户的输入参数
p
这将是abc
、 cdj
、 ...
、 mnp
,例如:
get_data <- function(p) {
use_data <- paste0('data_', 'p')
...
return(use_data)
}
Since use_data <- paste0('data_', 'p')
is a string, my question is how to make the function return the internal data such as data_mnp
if p = 'mnp'
.由于
use_data <- paste0('data_', 'p')
是一个字符串,我的问题是如何让 function 返回内部数据,例如data_mnp
if p = 'mnp'
。
I think this is how you need to do it, but I'd love to be corrected.我认为这就是你需要这样做的方式,但我很想得到纠正。
get_data <- function(p) {
data_name = paste0( "data_", p )
# check first that it exists in your package:
ns <- getNamespace("your.package.name")
if(!exists(data_name, where=ns, inherits=FALSE)) {
stop( "a data set with suffix ", p, " does not exist!")
}
return( get( data_name, where=ns, inherits=FALSE ) )
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.