在 R 中,用单引号和逗号分隔打印向量

am3*_*010 2 r paste knitr single-quotes

问题陈述:我正在创建一个动态应用程序,用户在其中选择输入并将它们传递到 URL 中以过滤数据。用户可以选择单个或多个值。我用来knitr::combine_words(Selected_Input, before = ",", and = "", sep = ",")将它们放在单引号中并用逗号分隔。但是当用户选择单个值时面临问题(如下所述):

#User selecting multiple values
Selected_Input <- c("Apple","Banana","Cherry")
knitr::combine_words(Selected_Input, before = ",", and = "", sep = ",")
Run Code Online (Sandbox Code Playgroud)

结果:'Apple','Banana','Cherry'这适用于我的代码。

但是当用户选择单个值时

#User selecting single value
Selected_Input <- c("Apple")
knitr::combine_words(Selected_Input, before = ",", and = "", sep = ",")
Run Code Online (Sandbox Code Playgroud)

结果:,Apple,这不起作用。因为它应该是单引号。

我在paste0中使用knitr::combine_words来创建动态URL。所以我正在寻找一种在paste0内部工作的方法。

如果我cat()在内部使用函数paste0,那么输出在我的代码中不起作用。网址没有到位。

vector <- c("apple", "banana", "cherry")
out <- paste(sQuote(vector, FALSE), collapse=", ")
cat(out, "\n")
#> 'apple', 'banana', 'cherry'

cat(toString(sQuote(vector, FALSE)))

paste0("url",cat(toString(sQuote(vector, FALSE))),"url")
Run Code Online (Sandbox Code Playgroud)

结果:'apple', 'banana', 'cherry'[1] "urlurl"

har*_*rre 5

关于什么:

fruits <- c("apple", "banana", "cherry")
all_fruit_in_one <- paste0(paste0("'", fruits, "'"), collapse = ", ")
cat(all_fruit_in_one)
Run Code Online (Sandbox Code Playgroud)

输出:

'apple', 'banana', 'cherry'
Run Code Online (Sandbox Code Playgroud)