R语言 创建一个逗号分隔的向量

jv4diomz  于 2023-10-13  发布在  其他
关注(0)|答案(7)|浏览(132)

我有一个数字向量,1,我试图把它变成一个字符向量,每个元素都用逗号分隔。

> one = c(1:5)
> paste(as.character(one), collapse=", ")
[1] "1, 2, 3, 4, 5"
> paste(as.character(one), sep="' '", collapse=", ")
[1] "1, 2, 3, 4, 5"

但是,我希望输出看起来像这样:

"1", "2", "3", "4", "5"

我是否在粘贴函数中缺少了一些参数?救命啊!

cwxwcias

cwxwcias1#

shQuote可能是最好的方法。具体来说,这会得到你想要的输出:

cat(paste(shQuote(one, type="cmd"), collapse=", "))

如果单引号没问题,您可以使用:用途:

paste(shQuote(one), collapse=", ")

type="cmd"实际上提供了转义引号,这对大多数上下文都很有用,但是如果你真的想用非转义引号显示它,cat也提供了。

lnlaulya

lnlaulya2#

你说你想要一个输出的字符向量,但是其他发现这个问题的人可能会寻找这些函数之一:
首先,一种为R的输入做好输出准备的方法;即dput

> dput(as.character(one))
c("1", "2", "3", "4", "5")

第二,一种输出csv文件的方法,该文件将是write.csvwrite.table。这些函数接受一个参数file,这里没有使用,直接输出到文件。

> write.table(matrix(as.character(one),nrow=1), sep=",",
              row.names=FALSE, col.names=FALSE)
"1","2","3","4","5"

> write.csv(matrix(as.character(one),nrow=1),row.names=FALSE)
"V1","V2","V3","V4","V5"
"1","2","3","4","5"
qpgpyjmq

qpgpyjmq3#

假设你希望你的输出是一个字符串(而不是一个字符向量),你可以尝试:

paste("'",as.character(one),"'",collapse=", ",sep="")

这会给数字加上单引号,而不是双引号,但这基本上是你想要的。
你总是可以转义得到双引号:

rs <- paste("\"",as.character(one),"\"",collapse=", ",sep="")
cat(rs)

它应该会打印出你想要的双引号。

jchrr9hc

jchrr9hc4#

除了shQuote之外,请参阅函数sQuotedQuote,以分别用单引号和双引号将文本括起来。您还需要设置options(useFancyQuotes=FALSE)以获取普通(单向)ASCII引号。

63lcw9qa

63lcw9qa5#

与toString类似的东西

toString(paste0("'",1:10,"'") )
slwdgvem

slwdgvem6#

如果你想使用paste函数的话,再加上Noah的回答:

paste(shQuote(one, type="sh"), collapse=", ")

应该给你给予:

[1] '1','2','3','4','5'
rkkpypqq

rkkpypqq7#

paste("'",as.character(one),"'",collapse=", ",sep="")

给了我:
[1]“'stop_id','stop_code','stop_name','stop_desc','stop_lat','stop_lon ','location_type ','parent_station '”

paste(",",as.character(one),"",collapse=" ",sep=" ")

cat(one,sep=",")

给了我:
“,stop_id,stop_code,stop_name,stop_desc,stop_lat,stop_lon,location_type,parent_station“

cat(one,sep=",")

给了我:
stop_id、stop_code、stop_name、stop_desc、stop_lat、stop_lon、location_type、parent_station

相关问题