如何在 R 中构建以下字符串?

数据挖掘 r
2022-02-15 19:13:12

我正在尝试构建一长串表单\'name1\',\'name2\',\'name3\',..etc...... 我该怎么做 ?我正在尝试使用 R 来做到这一点?手工是不可能的,因为目前有 200 多个这样的名字,将来我可能会有更多。所以我需要自动化这个过程。但是,每次我尝试使用 R 的 paste0 函数时,我都会得到不同的结果。这是我所做的:

t <- c()
for( nms in name){ t <- paste0(t, paste0("\\'",nms,"\\'", sep = ",") ) }

然而,结果证明包括双反斜杠而不是一个,像这样"\\'name1\\',\\'name2\\',\\'name3\\'等等。我无法得到我想要的一个反斜杠。

任何帮助,将不胜感激。

谢谢。

1个回答

R 显示字符串的方式(使用打印命令)与该字符串的实际值不同。即使您在输出中看到 2 个反斜杠,实际的字符串也包含一个反斜杠。这是因为当您键入变量的名称时,它会在引号内显示​​值,并且在引号内应该使用 2 个反斜杠。当您使用 message() 或其他类似函数显示字符串的值时,当它只打印不带引号的值时,您将只看到一个反斜杠:

#create a vector of names (words)
words <- c("word1","word2","word3")

#add prefix and suffix part to each word
words_vec <- paste0("\\'",words,"\\'")
words_vec
"\\'word1\\'" "\\'word2\\'" "\\'word3\\'"

#Combine the vector into the string
line <-paste(words_vec,collapse='')
line
"\\'word1\\'\\'word2\\'\\'word3\\'"

#Check how the string looks:
message(line)
\'word1\'\'word2\'\'word3\'

顺便说一句,上述(矢量化)方法比您用来将所有名称放在一起的 for 循环方法更有效。