Re: [问题] 先分组后循环

楼主: celestialgod (天)   2016-10-10 16:35:33
※ 引述《mdmdmdmd (bluebubble)》之铭言:
: - 问题: 当你想要问问题时,请使用这个类别
: 新手(没写过程式,R 是我的第一次)
: 抱歉又来打扰各位板友,再次麻烦各位了
: [问题叙述]:
: 首先我有先做出一个function功能是抽出一个n位数,每一位数都从1到4所组成。
: 然后我想要每次做完都判断是否这个n位数有含1,2,3,4的每个数。最后再抽1000个n位
: 数跟判断有没有含。
: 我觉得应该可以在一个function内完成,只是我资质驽钝,都想不出来QQ
: [程式范例]:
: g<-function(m){
: for(s in 1:m){
: A<-""
: A<-sample(1:4,1,replace=TRUE)
: if(A==1) A<-"T";
: if(A==2) A<-"R";
: if(A==3) A<-"U";
: if(A==4) A<-"E";
: f<-print(A)
: }
: }
: g(6)
: any(g(6)%in%c("T","R","U","E"))
g <- function(replicate, n){
sapply(rep(n, replicate), function(m){
all(table(factor(sample(1:4, m, TRUE), levels = 1:4))) > 0
})
}
g(1000, 6) # 1000个6位数有没有包含1~4
或是
g <- function(replicate, n){
sapply(rep(n, replicate), function(m){
all(as.character(1:4) %in% names(table(sample(1:4, m, TRUE))))
})
}
g(1000, 6)
理应第二个会比较快,用factor会比较慢
: 这是我目前做出来的成果,另外想请问有没有什么R语言的社团
看置底文
作者: mdmdmdmd (bluebubble)   2016-10-10 17:19:00
哇!好简洁。看来我还要学很多再请问一下要怎么知道有几次是TRUE没问题了谢谢您

Links booklink

Contact Us: admin [ a t ] ucptt.com