简体   繁体   English

如何通过 R package 中的字符串调用内部数据集

[英]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这将是abccdj...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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM