我有一个数字向量,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"
我是否在粘贴函数中缺少了一些参数?救命啊!
cwxwcias1#
shQuote可能是最好的方法。具体来说,这会得到你想要的输出:
shQuote
cat(paste(shQuote(one, type="cmd"), collapse=", "))
如果单引号没问题,您可以使用:用途:
paste(shQuote(one), collapse=", ")
type="cmd"实际上提供了转义引号,这对大多数上下文都很有用,但是如果你真的想用非转义引号显示它,cat也提供了。
type="cmd"
cat
lnlaulya2#
你说你想要一个输出的字符向量,但是其他发现这个问题的人可能会寻找这些函数之一:首先,一种为R的输入做好输出准备的方法;即dput:
dput
> dput(as.character(one)) c("1", "2", "3", "4", "5")
第二,一种输出csv文件的方法,该文件将是write.csv或write.table。这些函数接受一个参数file,这里没有使用,直接输出到文件。
write.csv
write.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"
qpgpyjmq3#
假设你希望你的输出是一个字符串(而不是一个字符向量),你可以尝试:
paste("'",as.character(one),"'",collapse=", ",sep="")
这会给数字加上单引号,而不是双引号,但这基本上是你想要的。你总是可以转义得到双引号:
rs <- paste("\"",as.character(one),"\"",collapse=", ",sep="") cat(rs)
它应该会打印出你想要的双引号。
jchrr9hc4#
除了shQuote之外,请参阅函数sQuote和dQuote,以分别用单引号和双引号将文本括起来。您还需要设置options(useFancyQuotes=FALSE)以获取普通(单向)ASCII引号。
sQuote
dQuote
options(useFancyQuotes=FALSE)
63lcw9qa5#
与toString类似的东西
toString(paste0("'",1:10,"'") )
slwdgvem6#
如果你想使用paste函数的话,再加上Noah的回答:
paste
paste(shQuote(one, type="sh"), collapse=", ")
应该给你给予:
[1] '1','2','3','4','5'
rkkpypqq7#
给了我:[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
7条答案
按热度按时间cwxwcias1#
shQuote
可能是最好的方法。具体来说,这会得到你想要的输出:如果单引号没问题,您可以使用:用途:
type="cmd"
实际上提供了转义引号,这对大多数上下文都很有用,但是如果你真的想用非转义引号显示它,cat
也提供了。lnlaulya2#
你说你想要一个输出的字符向量,但是其他发现这个问题的人可能会寻找这些函数之一:
首先,一种为R的输入做好输出准备的方法;即
dput
:第二,一种输出csv文件的方法,该文件将是
write.csv
或write.table
。这些函数接受一个参数file
,这里没有使用,直接输出到文件。qpgpyjmq3#
假设你希望你的输出是一个字符串(而不是一个字符向量),你可以尝试:
这会给数字加上单引号,而不是双引号,但这基本上是你想要的。
你总是可以转义得到双引号:
它应该会打印出你想要的双引号。
jchrr9hc4#
除了
shQuote
之外,请参阅函数sQuote
和dQuote
,以分别用单引号和双引号将文本括起来。您还需要设置options(useFancyQuotes=FALSE)
以获取普通(单向)ASCII引号。63lcw9qa5#
与toString类似的东西
slwdgvem6#
如果你想使用
paste
函数的话,再加上Noah的回答:应该给你给予:
rkkpypqq7#
给了我:
[1]“'stop_id','stop_code','stop_name','stop_desc','stop_lat','stop_lon ','location_type ','parent_station '”
给了我:
“,stop_id,stop_code,stop_name,stop_desc,stop_lat,stop_lon,location_type,parent_station“
给了我:
stop_id、stop_code、stop_name、stop_desc、stop_lat、stop_lon、location_type、parent_station