在r中重复采样循环

在r中重复采样循环,r,R,我试图从一个数据帧中进行随机抽样,其中抽样是以已经抽样的项目的属性为条件的。在下面的代码中,我尝试从“snr”中采样一个项目,然后是与第一个采样的“snr”相对应的随机“正确”值。然后,我想根据“correct”的值对较大或较小的“snr”值进行采样。该过程应重复“y”次,并显示长度y的两个向量“snr”和“correct”的输出 当前,如果函数正在工作,我的R窗口将停止响应,并且它从未停止,或者我会收到各种错误 snr=c(2,4,6,2,4,6,2,4,6,2,4,6);correct=c(

我试图从一个数据帧中进行随机抽样,其中抽样是以已经抽样的项目的属性为条件的。在下面的代码中,我尝试从“snr”中采样一个项目,然后是与第一个采样的“snr”相对应的随机“正确”值。然后,我想根据“correct”的值对较大或较小的“snr”值进行采样。该过程应重复“y”次,并显示长度y的两个向量“snr”和“correct”的输出

当前,如果函数正在工作,我的R窗口将停止响应,并且它从未停止,或者我会收到各种错误

snr=c(2,4,6,2,4,6,2,4,6,2,4,6);correct=c(0.2,0.8,0.3,0.7,0.4,0.6,1,1,0,0.1,0.9,0)
data$snr=snr; data$correct=correct

samplesub2<-function(data.frame,y){ ### x is data frame, y is number of samples ###
  repeat{
    snrS<- sample(data.frame$snr,1,replace=TRUE)
    correctS<- sample(data.frame$correct[data.frame$snr==snrS], 1, replace=TRUE)

    if (correctS>0.5){
      snrS<-sample(data.frame$snr[data.frame$snr==snrS+2],1,replace=TRUE)
      correctS<- sample(data.frame$correct[data.frame$snr==snrS], 1, replace=TRUE)
    }

    else if (correctS<0.5){
      snrS<- sample(data.frame$snr[data.frame$snr==snrS-2]),1,replace=TRUE)
      correctS<- sample(data.frame$correct[data.frame$snr==snrS], 1, replace=TRUE)
    }

    if(length(snrS<y)
      break
  }
  return(c(snrS,correctS))
}
snr=c(2,4,6,2,4,6,2,4,6,2,4,6);校正=c(0.2,0.8,0.3,0.7,0.4,0.6,1,1,0,0.1,0.9,0)
数据$snr=snr;数据$correct=正确

samplesub2下面的代码将iris数据集随机分成5个子集,每5次30个样本。总共有5组,每组5个亚组。共有5组25个亚组

 for(i in 1:5){
 iris_grp=split(iris,sample(rep(1:5,30)))
 names(iris_grp) <- paste("iris",i,c("A","B","C","D","E"),sep="")
 list2env(iris_grp, envir = .GlobalEnv)
 print(iris_grp)
 for(i in seq_along(iris_grp)) {
 write.table(iris_grp[[i]], paste(names(iris_grp)[i], ".txt", sep =    ""), 
        col.names = T, row.names = T, sep = "\t", quote = FALSE)
 }
 i=i+1
 }
for(1:5中的i){
iris_grp=分割(iris,样本(代表(1:5,30)))

名字(iris_grp)你的代码中有两个输入错误:
if(length)(snrSCheers,good spot)。