'Concatenate strings with quotation marks separated by commas
I want to write a function that concatenates multiple strings into one one string, but each part is marked with quotation marks and separated by a comma.
The function should basically take the inputs "a"and "b" and print this c('"a", "b"'), which will result in an output like this:
c('"a", "b"')
# [1] "\"a\", \"b\""
How can I created this c('"a", "b"') in a function body?
Solution 1:[1]
You can achieve it by a single paste0():
x <- c("a", "b", "c")
paste0('"', x, '"', collapse = ", ")
# [1] "\"a\", \"b\", \"c\""
or sprintf() + toString():
toString(sprintf('"%s"', x))
# [1] "\"a\", \"b\", \"c\""
Solution 2:[2]
How about this:
x <- c("a", "b")
out <- paste0("c(", paste0('"', x, '"', collapse=", "), ")")
out
#> [1] "c(\"a\", \"b\")"
eval(parse(text=out))
#> [1] "a" "b"
Created on 2022-05-13 by the reprex package (v2.0.1)
Solution 3:[3]
With dQuote:
v <- c("a", "b", "c")
toString(dQuote(v, q = ""))
#[1] "\"a\", \"b\", \"c\""
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Darren Tsai |
| Solution 2 | DaveArmstrong |
| Solution 3 | Maël |
