随机生成5个字母"单词"

ulr*_*ich 6 r random-sample

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

目前我正在使用以下脚本,但肯定应该有更好的方法来做到这一点

result = list()
for (i in 1:10){
result[i]<-paste(sample(LETTERS, 5, replace=TRUE),collapse="")
}
result<-paste(t(result))
Run Code Online (Sandbox Code Playgroud)

Kon*_*lph 6

您的代码没有任何根本性的错误,除非它使用循环这一事实.

唯一更好的方法是用列表应用程序函数替换循环(在这种情况下:) replicate:

replicate(10, paste(sample(LETTERS, 5, replace = TRUE), collapse = ''))
Run Code Online (Sandbox Code Playgroud)


Rol*_*and 6

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

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"
Run Code Online (Sandbox Code Playgroud)


akr*_*run 5

这是一个选项stringi

library(stringi)
set.seed(1)
stri_rand_strings(10, 5, '[A-Z]')
#[1] "GJOXF" "XYRQB" "FERJU" "MSZJU" "YFQDG" "KAJWI" "MPMEV" "RUCSK" "VQUON"
#[10] "UAMTS"
Run Code Online (Sandbox Code Playgroud)