Sql 从R中的列表连接键值对
我有一个要连接成字符串的对象列表。这最终将用于构造SQL语句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) %>
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"