Объединение пар ключ-значение из списка в R - PullRequest
1 голос
/ 16 января 2020

У меня есть список объектов, которые я хотел бы объединить в строку. В конечном итоге это будет использовано для построения оператора 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 = ", ")

Это дает желаемый результат, но мне интересно, если я упускаю более очевидное решение.

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

Ответы [ 2 ]

2 голосов
/ 16 января 2020

Вы можете использовать пасту

Вы можете получить тот же результат, используя только paste:

paste(names(test), test, sep = " = ", collapse = ", ")

Вывод:

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

Надеюсь, это поможет.

0 голосов
/ 16 января 2020

Или мы можем преобразовать в data.frame и paste с do.call

do.call(paste, c(stack(test)[2:1], sep=" = ", collapse=", "))
#[1] "key = value, key1 = value1, key2 = value2"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...