将用户输入作为字符串传递给函数

时间:2020-06-16 00:24:38

标签: r

csvToJSON <- function (fileUrl, fileName) {
  library(rjson)
  data <- read.csv(fileUrl)
  jsonData <- toJSON(as.list(data))
  fileName <- paste0(fileName, ".json")
  write(jsonData, cat(fileName))
}

我创建了此功能,以将csv文件转换为JSON文件。 对于我拥有的csvToJSON函数,输入参数之一是fileName,并且我希望它成为要输出的json文件的名称,因此我将fileName传递给了write()函数。但是,write()函数要求它采用write(jsonData,“ fileName”)的形式。我怎么解决这个问题?换句话说,如何在输入的文件名上添加引号?

1 个答案:

答案 0 :(得分:1)

要传递未加引号的列名并将其用作函数中的字符串,我们可以使用deparsesubstitute

csvToJSON <- function (fileUrl, fileName) {
    fileName <- deparse(substitute(fileName))
    data <- read.csv(fileUrl)
    jsonData <- toJSON(as.list(data))
    fileName <- paste0(fileName, ".json")
    write(jsonData, fileName)
} 

csvToJSON("data.baltimorecity.gov/api/views/dz54-2aru/", jsonData)