我有一个数字向量,一个,我试图变成一个字符向量,其中每个元素用逗号分隔.
> 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"
Run Code Online (Sandbox Code Playgroud)
但是,我希望输出看起来像:
"1", "2", "3", "4", "5"
Run Code Online (Sandbox Code Playgroud)
我错过了粘贴功能中的一些参数吗?救命!?
Noa*_*oah 82
shQuote这可能是最好的方法.具体来说,这可以获得您想要的输出:
cat(paste(shQuote(one, type="cmd"), collapse=", "))
Run Code Online (Sandbox Code Playgroud)
如果单引号没问题,您可以使用:
paste(shQuote(one), collapse=", ")
Run Code Online (Sandbox Code Playgroud)
type="cmd"实际上提供了转义引号,这对大多数情况来说实际上是有用的,但是如果你真的想用未转义的引号显示它,请cat提供.
Aar*_*ica 37
你说你想要一个带有那个输出的字符向量,但是找到这个问题的其他人可能正在寻找这些函数之一:
首先,一种让输出准备好输入到R的方法; 那将是dput:
> dput(as.character(one))
c("1", "2", "3", "4", "5")
Run Code Online (Sandbox Code Playgroud)
第二,输出csv文件的方法,它将是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"
Run Code Online (Sandbox Code Playgroud)
jor*_*ran 13
假设您希望输出字符串(而不是字符向量),您可以尝试:
paste("'",as.character(one),"'",collapse=", ",sep="")
Run Code Online (Sandbox Code Playgroud)
这会为你提供数字而不是双引号的单引号,但它基本上就是你想要的.
而你总是可以逃脱获得双引号:
rs <- paste("\"",as.character(one),"\"",collapse=", ",sep="")
cat(rs)
Run Code Online (Sandbox Code Playgroud)
应该用双引号打印出你想要的东西.