【问题标题】:removing double quotes from string while passing it as an argument in R [closed]从字符串中删除双引号,同时将其作为R中的参数传递[关闭]
【发布时间】:2018-10-29 20:57:47
【问题描述】:

我有一个带双引号的字符串: 例如string1<-"URL,username,password"

现在有一个函数调用: 如果像这样调用function(URl,Username,password)function(string1)..... 函数可以工作。

但是如果我像这样调用function(string1) 它将不起作用,因为 string1 包含双引号。

我该如何解决这个问题?

【问题讨论】:

  • 请包括可重现的示例,以及您收到的错误消息。
  • @DominicComtois 它是一个将 R 连接到 Neo4j(图形数据库)的“startGraph”函数。它需要 3 个参数 1. URL 2.username 和 3.password。它实际上是库 RNeo4j 的内置功能。因此,如果我在 startGraph 函数中分别传递 URL、用户名和密码,它可以工作,但如果我将 URL、用户名和密码保存到一个对象并将该对象传递给 startGraph 函数,它就不起作用

标签: r string function


【解决方案1】:

我想你要找的是do.call:

args <- as.list(strsplit(x = "a,b,c", split = ",")[[1]])
do.call(someFunction, args)

【讨论】:

    【解决方案2】:

    目前尚不清楚该函数响应什么/如何响应。这是一个示例,它为数据集和列名的参数采用两个参数,并获取该列的mean

    f1 <- function(dat, col){
         mean(dat[[col]], na.rm = TRUE)
    
    }
    
    df <- data.frame(col1 = 1:5)
    f1(df, "col1")
    #[1] 3
    

    如果我们使用一个将字符串作为参数的单个参数创建函数,然后通过分隔符 (,) 分割字符串,get 数据框对象的值,子集列并应用 @987654325 @函数

    f2 <- function(str1){
          v1 <- strsplit(str1, ",")[[1]]
          mean(get(v1[1])[[v1[2]]], na.rm = TRUE)
      }
    
    string1 <- "df,col1"
    f2(string1)
    #[1] 3
    

    【讨论】:

    • 它是一个将 R 连接到 Neo4j(图形数据库)的“startGraph”函数。它需要 3 个参数 1. URL 2.username 和 3.password。它实际上是库 RNeo4j 的内置功能。因此,如果我在 startGraph 函数中分别传递 URL、用户名和密码,它可以工作,但是如果我将 URL、用户名和密码保存到一个对象并将该对象传递给 startGraph 函数,它就不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2019-05-11
    相关资源
    最近更新 更多