0

出于模拟目的,我试图弄清楚如何生成带有空格和句点的英文字母的长有限文本字符串。我一直在玩连接和注册。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"

提前感谢您的任何提示。

4

2 回答 2

3

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

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

然后使用paste0将您的采样结果组合成一个字符串:

paste0(sample(chars, 100, replace=TRUE), collapse="")
于 2013-11-01T05:16:55.057 回答
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)
于 2013-11-01T05:21:43.020 回答