R 如何将逗号分隔的矢量元素粘贴到引号中?

R 如何将逗号分隔的矢量元素粘贴到引号中?,r,string,R,String,我想按名称的特定顺序选择数据帧dfr的列,首先是数字 > (x <- names(dfr)[c(3, 4, 2, 1, 5)]) [1] "c" "d" "b" "a" "e" 我想将用逗号和引号分隔的元素粘贴到一个字符串中,以便将其包含到最终代码中。我尝试了几种选择,但它们不能满足我的需求: > paste(x, collapse='", "') [1] "c\", \"d\", \"b\", \"a\", \"e" > paste(x, collapse="', '

我想按名称的特定顺序选择数据帧dfr的列,首先是数字

> (x <- names(dfr)[c(3, 4, 2, 1, 5)])
[1] "c" "d" "b" "a" "e"
我想将用逗号和引号分隔的元素粘贴到一个字符串中,以便将其包含到最终代码中。我尝试了几种选择,但它们不能满足我的需求:

> paste(x, collapse='", "')
[1] "c\", \"d\", \"b\", \"a\", \"e"
> paste(x, collapse="', '")
[1] "c', 'd', 'b', 'a', 'e"
我需要像‘c’、‘d’、‘b’、‘a’、‘e’这样的东西,当然c、d、b、a、e会更好

资料

从软件包中尝试向量粘贴函数

图书馆数据面食 矢量输入矢量=字母[1:3] >ca,b,c 向量粘贴垂直输入向量=字母[1:3] >ca, >b,, >c
或者,使用base R,这将为您提供所需的:

(x <- letters[1:3])
q <- "\""
( y <- paste0("c(", paste(paste0(q, x, q), collapse = ", ") , ")" ))
[1] "c(\"a\", \"b\", \"c\")"
虽然我不确定你为什么想要它?当然,您可以简单地如下所示:

df <- data.frame(a=1:3, b = 1:3, c = 1:3)
df[ , x]

  a b c
1 1 1 1
2 2 2 2
3 3 3 3

df[ , rev(x)]

  c b a
1 1 1 1
2 2 2 2
3 3 3 3
因此,dputx是正确的答案,但如果您想知道如何通过修改现有代码来实现这一点,您可以执行以下操作:

cat(paste0('c("', paste(x, collapse='", "'), '")'))
c("c", "d", "b", "a", "e")
也可以使用包完成,如Tung所示,下面是一个使用胶水的示例:


我不明白为了按名称a la dfr[,ca,b,c]选择列,我想将用逗号和引号分隔的元素粘贴到一个字符串中。这根本没有意义,我假设你有XY问题。试试dfr[x]。等等,我正在编辑这个问题……还是没有意义。根本没有理由在R中创建这样一个用于子集设置的字符串。您正在寻找dputx吗?感谢您将粘贴混乱一直玩到最后,非常聪明。不过我还是喜欢dput^^
df <- data.frame(a=1:3, b = 1:3, c = 1:3)
df[ , x]

  a b c
1 1 1 1
2 2 2 2
3 3 3 3

df[ , rev(x)]

  c b a
1 1 1 1
2 2 2 2
3 3 3 3
cat(paste0('c("', paste(x, collapse='", "'), '")'))
c("c", "d", "b", "a", "e")
library(glue)
glue('c("{v}")', v = glue_collapse(x, '", "'))
c("c", "d", "b", "a", "e")