R sprintf или paste получает результаты c (value) - PullRequest
0 голосов
/ 03 мая 2018

У меня есть две базы данных, которые находятся на разных серверах. Поэтому я запрашиваю одну базу данных, помещая этот результат в список. Затем попытка sprintf или вставить этот список в другой SQL-запрос. Когда я использую sprintf или paste, я получаю c () вокруг значений списка.

    testing <- sprintf("all codes in %s",code_list)
    cat(testing,"\n")
    Results: all codes in c("1", "4", "5", "6", "7", "8", "9", "F", "N", "R", "S", "Y", "Z", "0", "E", "H", "A") 

dput(code_list)
structure(list(CODE_CLASS = c("1", "4", "5", "6", "7", "8", "9","F", "N","R", "S", "Y", "Z", "0", "E", "H", "A")), .Names = "CODE_CLASS", row.names = c(NA,17L), class = "data.frame")

Результаты, на которые я надеюсь: все коды в ("1", "4", "5", "6", "7", "8", "9", "F" , "N", "R", "S", "Y", "Z", "0", "E", "H", "A") в основном избавиться от ц.

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Мы могли бы использовать glue, чтобы сделать это

library(glue)
glue("all code in ({toString(unlist(code_list))})")
#all code in (1, 4, 5, 6, 7, 8, 9, F, N, R, S, Y, Z, O, E, H, A)

Обновление

Если нам это нужно в кавычках

glue("all code in ({toString(shQuote(unlist(code_list)))})")
#all code in ('1', '4', '5', '6', '7', '8', '9', 'F', 'N', 'R', 'S', 'Y', 'Z', 'O', 'E', 'H', 'A')

Или в двойных кавычках

glue("all code in ({toString(dQuote(unlist(code_list)))})")

данные

code_list <- list(c(1, 4, 5, 6, 7, 8, 9), c("F", "N", "R", "S", "Y", "Z", 
    "O", "E", "H", "A"))
0 голосов
/ 03 мая 2018
testing <- sprintf("all codes in %s",paste0("(",toString(unlist(code_list)),")"))
> cat(testing,"\n")
all codes in (1, 4, 5, 6, 7, 8, 9, F, N, R, S, Y, Z, 0, E, H, A) 

Но вы можете пойти дальше и напрямую сделать:

cat("all codes in",paste0("(",toString(unlist(code_list)),")"),"\n")
all codes in (1, 4, 5, 6, 7, 8, 9, F, N, R, S, Y, Z, 0, E, H, A) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...