出于模拟目的,我试图找出如何生成带有空格和句点的英文字母的长有限字符串。我一直在玩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"
提前感谢您的任何提示。
答案 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)