我正在尝试为API构建查询,并且我有一个函数,它是列表中的参数和值.如果我的一些参数有多个值,我会遇到问题.例如,
paramlist1 <- list(
a = "1",
b = "2",
c = "3",
d = "4"
)
paste(names(paramlist1), "=", paramlist1, collapse = "&", sep="")
Run Code Online (Sandbox Code Playgroud)
工作良好.但我有一些参数可以包含多个值.例如,
paramlist2 <- list(
a = "1",
b = "2",
c = c("3", "4"),
d = c("5", "6")
)
Run Code Online (Sandbox Code Playgroud)
我希望这能给我2个字符串:
a=1&b=2&c=3&d=5和a=1&b=2&c=4&d=6
也许我创建这个参数列表的方法不是最好的.谢谢
您需要将较短的向量重复为与较长向量相同的长度.一种方法是将列表转换为data.frame,然后您可以apply将paste函数转换为每一行:
myfun <- function(x) paste(names(x), "=", x, collapse="&", sep="")
apply(as.data.frame(paramlist2), 1, myfun)
Run Code Online (Sandbox Code Playgroud)