大家早上好,
我是 R 的新手,我正在尝试从 httr::POST 函数中获取几个。下面我发代码:
`token <- "FC9439DCA5A64714XXXXXXXXXXXXX"
url <- "https://redcap.fmrp.usp.br/api/"
formData <- list("token"=token,
content='surveyLink',
format='xml',
instrument= "qualidade_de_vida_cervical",
event= "baseline_arm_1",
record= "1",
returnFormat='xml'
)
response <- httr::POST(url, body = formData, encode = "form")
result <- httr::content(response)
result <- minimal_html(result) %>% html_elements("body") %>% html_text2()
return(result)`
如果我一次执行一个请求,代码工作正常。但是,我需要几个 ID 才能获取链接。
当我尝试替换“instrument”、“event”和“record”的值以尝试执行循环或类似应用的函数时,我收到一条错误消息。
我试过的代码:
my_list <- c("949_1","949_2")
for (i in my_list){
token <- "FC9439DCA5A64XXXXXXXXXXXXXXXX"
url <- "https://redcap.fmrp.usp.br/api/"
formData <- list("token"=token,
content='surveyLink',
format='xml',
instrument= "qualidade_de_vida_cervical",
event= "baseline_arm_1",
record= my_list,
returnFormat='xml'
)
response <- httr::POST(url, body = formData, encode = "form")
result <- httr::content(response)
result <- minimal_html(result) %>% html_elements("body") %>% html_text2()
return(result)
}
我得到的错误:
“vapply(元素,编码,字符(1))错误: 值的长度必须为 1, 但是 FUN(X[[6]]) 结果是长度 2"
The traceback to error is as follow:
6. vapply(elements, encode, character(1))
5. compose_query(body)
4. body_raw(compose_query(body), "application/x-www-form-urlencoded")
3. body_config(body, match.arg(encode))
2. request_build("POST", hu$url, body_config(body, match.arg(encode)),
as.request(config), ...)
1. httr::POST(url, body = formData, encode = "form")
我的问题是,是否可以使用迭代函数检索一批链接?
非常感谢,
加布里埃尔·波科尔尼