在R中生成单词

时间:2013-11-01 05:11:46

标签: r

出于模拟目的,我试图找出如何生成带有空格和句点的英文字母的长有限字符串。我一直在玩concatenate和reg。 exp,并查看帮助文件,但作为R的新手,没有取得多大进展。到目前为止我得到的只是x <- sample(c("a", "b", "c", " ", ".", 100, replace=TRUE)。嗯,这只是三个字母。我一直在尝试[a:z]和类似的事情,但c()似乎并不喜欢这样,并给出了错误。

然后,即使我枚举c()中的每个字母,样本函数也会返回一个字符向量,每个字母都是一个元素:

str(x)
chr [1:100] "c" "b" "a" "b" ...

但我需要整个字符串只是字符向量中的一个元素。我正在寻找的函数的一个示例将生成一个文本字符串,如我想要的任何长度的“asdf twdjk.fd alw”,在这种情况下为17.所以如果我对结果执行str(),它应该给我:

str(x)
chr "asdf twdjk.fd alw"

提前感谢您的任何提示。

2 个答案:

答案 0 :(得分:3)

R将字母表中的所有字母作为内置常量提供,因此要从中生成字符,您可以这样做:

chars = c(letters, " ", ".")

然后使用paste0将采样结果合并为一个字符串:

paste0(sample(chars, 100, replace=TRUE), collapse="")

答案 1 :(得分:1)

希望有人可以做得更好:

Alphabet <- c(LETTERS, " ", ".")

set.seed(123)
x <- sample(Alphabet, 17) # maybe replace=TRUE
x <- as.list(x)

pasteNoSpaces <- function(...) paste(..., sep="")  # paste0 is better
do.call("pasteNoSpaces", x)