r - 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")}
这行不通。有人可以帮我处理这个吗?谢谢!
解决方案
您需要将“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"))
如果在您的函数中运行其中任何一个,它将按预期工作。
推荐阅读
- python - 如何实现行星受到其他行星引力的影响,而不仅仅是太阳?
- python - 使用 api 从谷歌驱动器下载文件(名称错误:名称“服务”未定义)
- facebook-graph-api - Facebook graph api 公共页面数据
- c# - 使用 DI 引导包含多种模块类型的 ASP.NET Core 2.1 应用程序
- docker - docker build - 避免只在构建时添加文件
- python - 根据数据框列中的某个值获取所有数据框
- java - @Embeddedid,@Embeddable 等价于 C#
- yaml - 将多个参数传递给 YAML CloudFormation 中的 DBParameterGroup
- python - 用curve_fit拟合python
- woocommerce - 如何在前端以相反的顺序获取 woocommerce 产品变化