首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机生成5个字母"word“

随机生成5个字母"word“
EN

Stack Overflow用户
提问于 2015-02-23 13:52:27
回答 4查看 369关注 0票数 6

我想创建一个由5个字符组成的10个“单词”向量,这些字符都是随机生成的。例如c("ASDT“、”WUIW“.)

目前我正在使用下面的脚本,但是肯定会有更好的方法来做到这一点。

代码语言:javascript
复制
result = list()
for (i in 1:10){
result[i]<-paste(sample(LETTERS, 5, replace=TRUE),collapse="")
}
result<-paste(t(result))
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-02-23 13:59:06

我将采样一次,并将结果转换为data.frame,可以传递给paste0

代码语言:javascript
复制
set.seed(42)
do.call(paste0, as.data.frame(matrix(sample(LETTERS, 50, TRUE), ncol = 5)))
#[1] "XLXTJ" "YSDVL" "HYZKA" "VGYRZ" "QMCAL" "NYNVY" "TZKAX" "DDXFQ" "RMLXZ" "SOVPQ"
票数 6
EN

Stack Overflow用户

发布于 2015-02-23 13:56:37

除了使用循环这一事实之外,您的代码没有什么根本问题。

唯一更好的方法是用列表应用程序函数替换循环(在本例中为:replicate):

代码语言:javascript
复制
replicate(10, paste(sample(LETTERS, 5, replace = TRUE), collapse = ''))
票数 6
EN

Stack Overflow用户

发布于 2015-02-23 14:02:59

我将创建一个自定义函数,如这个函数,它将接受一个单词的大小和您想要的单词数。

代码语言:javascript
复制
WordsGen  <- function(n, size){
  substring(paste(sample(LETTERS, n * size, replace = TRUE), collapse = ""),
             seq(1, (n - 1)*size + 1, size), seq(size, n * size, size))
}

set.seed(1)
WordsGen(10, 5)
## [1] "GJOXF" "XYRQB" "FERJU" "MSZJU" "YFQDG" "KAJWI" "MPMEV" "RUCSK" "VQUON" "UAMTS"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28675326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档