首页 > 解决方案 > 字符串中的函数参数

问题描述

我想在字符串中放置一个参数,以便使用此函数导入文件:

import_df <- function(df) {
  df <- read_xpt(
    file = "C:\\Folder\\Sub1\\Sub2\\df.xpt"
  )
  return(df)
}

import_df(ds1)

问题是每次我收到此消息时:错误:'C:\folder\Sub1\Sub2\df.xpt' 不存在。它不会将“df”视为文件路径中的“ds1”。我怎样才能用 R 函数做到这一点?

标签: r

解决方案


任何变量都会遇到同样的问题,而不仅仅是函数参数。字符串文字与代码根本不同。如果不是,R 怎么会知道你打算df成为一个变量?为什么不也C, Folder,Sub1和?Sub2xpt

你需要告诉 R 从不同的部分构造你的字符串。有不同的方法可以做到这一点;最基本的是paste0

paste0("C:\\Folder\\Sub1\\Sub2\\", df, ".xpt")

另一种常用的方式是sprintf,主要适用于熟悉其他语言的人,例如 C 。否则,您可以安装包 '<a href="https://glue.tidyverse.org/index.html" rel="nofollow noreferrer">glue' 并使用该glue函数插入变量:

glue("C:\\Folder\\Sub1\\Sub2\\{df}.xpt")

推荐阅读