R中每行随机抽样的矢量化解决方案
我想将以下for循环转换为矢量化格式:R中每行随机抽样的矢量化解决方案,r,vectorization,R,Vectorization,我想将以下for循环转换为矢量化格式: for (i in 1:100){ if (runif<0.01){b<-sample(1:2,1)} else {b<-NA}} for(i in 1:100){if(runif首先制作样本向量,然后根据prob_rand进行子集设置怎么样 x <- sample( 1:no_options , 100 , repl = TRUE ) x[ runif(100) > prob_rand ] <- NA x prob
for (i in 1:100){ if (runif<0.01){b<-sample(1:2,1)} else {b<-NA}}
for(i in 1:100){if(runif首先制作样本向量,然后根据prob_rand
进行子集设置怎么样
x <- sample( 1:no_options , 100 , repl = TRUE )
x[ runif(100) > prob_rand ] <- NA
x prob\u rand]先生成样本向量,然后根据prob\u rand
进行子集设置怎么样
x <- sample( 1:no_options , 100 , repl = TRUE )
x[ runif(100) > prob_rand ] <- NA
x prob\u rand]您的第一个示例不起作用,我想您的意思是:
for (i in 1:100){ if (runif<0.01){b<-sample(1:2,1)} else {b<-NA}}
你的第一个例子不起作用,我想你的意思是:
for (i in 1:100){ if (runif<0.01){b<-sample(1:2,1)} else {b<-NA}}
在data.frame中可能是
df = data.frame(r=runif(100))
df$b = ifelse(df$r<0.01,sample(1:2,1),NA)
df=data.frame(r=runif(100))
df$b=ifelse(数据帧中的df$r可能是
df = data.frame(r=runif(100))
df$b = ifelse(df$r<0.01,sample(1:2,1),NA)
df=data.frame(r=runif(100))
df$b=ifelse(df$r您也可以使用rbinom
n <- 100
(runif(n) < 0.1) * sample(2, n, replace = TRUE)
rbinom(n, size = 1, prob = 0.1) * sample(2, n, replace = TRUE)
n您也可以使用rbinom
n <- 100
(runif(n) < 0.1) * sample(2, n, replace = TRUE)
rbinom(n, size = 1, prob = 0.1) * sample(2, n, replace = TRUE)
n是否可以赋值而不是NA nothing?因此,如果已经存在一个值,那么就保留该值?我很难理解你的意思。但我猜你的意思是,某个向量b
已经存在,如果掷骰子的数量大于概率
,你想替换其中的值,但如果不,那就别管b
。如果是这样的话,那就用b
替换NA
。可以赋值而不是不赋值吗?所以如果已经有一个值,那就保留那个值吧?我很难理解你的意思。但我猜你的意思是,某个向量b
已经存在了sts,如果骰子滚动大于prob\u rand
,则要替换其中的值,但如果不是,则只需离开b
。如果是这种情况,则只需将NA
替换为b
。