首页 > 解决方案 > R中带有输入的Load()函数

问题描述

我正在使用 R 创建一个允许我加载特定 Rdata 的函数。所以我有几个不同的文件,每个文件都包含一个特定的 Rdata 集。例如,如果我想加载有关北线的信息,我会写 load(“TfL/Line/northern/Arrivals.Rdata")

如果我想要圈线,我会写 load(“TfL/Line/circle/Arrivals.Rdata")

问题是,我可以使用 load 函数编写一个以管道名称LineName作为输入的函数吗?我试过了

Get_information<- function(LineName==NULL){
load(“TfL/Line/LineName/Arrivals.Rdata")}

这行不通。有人可以帮我处理这个吗?谢谢!

标签: rcharacterload

解决方案


您需要将“LineName”作为变量传递。目前,您只是将“LineName”写为字符串文字。

有几个函数可以做到这一点:

粘贴0

Paste0 将字符向量(文字或对象)组合成一个字符串:

load(paste0(“TfL/Line/", LineName, "/Arrivals.Rdata"))

胶水

Glue 是一个 CRAN 包,其功能类似于paste0,但更易于编写和阅读:

#install.packages("glue") #<- run if you don't have glue installed
require("glue") # attach the package so that we can use 'glue'
load(glue("TfL/Line/{LineName}/Arrivals.Rdata"))

如果在您的函数中运行其中任何一个,它将按预期工作。


推荐阅读