代码之家  ›  专栏  ›  技术社区  ›  Simone

使用变量字段名调用set_values

  •  1
  • Simone  · 技术社区  · 8 年前

    如何在中提交变量 set_values 中的函数 rvest

    actions <- set_values(form, "stream"="test")
    

    其中“stream”是我表单中的字段名

    但是如果a声明一个变量并使用它调用set_值,我会得到一个错误

    temp <- "stream"
    actions <- set_values(form, temp="test")
    

    错误:未知字段名:temp

    有什么帮助吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Tim Goodman    8 年前

    在里面 set_values(form, temp="test") temp 用作的参数的名称 set_values 函数,而不是局部变量。

    如果要从变量中获取参数名,可以构建一个命名参数列表,并使用 do.call

    temp <- "stream"
    
    arguments <- list(form, "test")
    names(arguments) <- c("form", temp)
    do.call(set_values, arguments)
    

    同样的想法,更简洁一点:

    temp <- "stream"
    do.call(set_values, setNames(list(form, "test"), c("form", temp)))
    

    或者,如果愿意,可以按位置而不是按名称匹配第一个参数:

    temp <- "stream"
    do.call(set_values, c(list(form), setNames("test", temp)))