set_values使用变量字段名称调用

时间:2017-09-27 21:56:16

标签: r rvest

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

当我以这种方式调用函数时,我没有任何问题

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

其中&#34; stream&#34;是我的表单中的字段名称

但如果声明一个变量并使用它来调用set_values我会收到错误

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

错误:未知字段名称:temp

任何帮助?

1 个答案:

答案 0 :(得分:0)

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)))