Sql 从R中的列表连接键值对

Sql 从R中的列表连接键值对,sql,r,list,Sql,R,List,我有一个要连接成字符串的对象列表。这最终将用于构造SQL语句 library(purrr) test <- list(key = "value", key1 = "value1", key2 = "value2") > test $key [1] "value" $key1 [1] "value1" $key2 [1] "value2" map2(names(test), test, ~paste(.x, "=", .y)) %>% reduce(c) %>

我有一个要连接成字符串的对象列表。这最终将用于构造SQL语句

library(purrr)
test <- list(key = "value", key1 = "value1", key2 = "value2")

> test
$key
[1] "value"

$key1
[1] "value1"

$key2
[1] "value2"

map2(names(test), test, ~paste(.x, "=", .y)) %>% 
  reduce(c) %>% 
  paste0(collapse = ", ")

你可以用浆糊 您只需使用粘贴即可获得相同的结果:

paste(names(test), test, sep = " = ", collapse = ", ")
输出:

[1] "key = value, key1 = value1, key2 = value2"

希望这有帮助。

或者我们可以使用
do.call将
转换为
data.frame
paste

do.call(paste, c(stack(test)[2:1], sep=" = ", collapse=", "))
#[1] "key = value, key1 = value1, key2 = value2"

我想我现在喝的咖啡太多了,哈哈。非常感谢。我知道我遗漏了一些明显的东西。这得到了相反的顺序:value=key,当它应该是key=value时。当操作部分似乎是您的
粘贴
调用时,将其放在数据帧中有什么好处?@camile谈到了这一好处。它使用
NULL
进行一些检查,例如
test
do.call(paste, c(stack(test)[2:1], sep=" = ", collapse=", "))
#[1] "key = value, key1 = value1, key2 = value2"