在r中重复采样循环
我试图从一个数据帧中进行随机抽样,其中抽样是以已经抽样的项目的属性为条件的。在下面的代码中,我尝试从“snr”中采样一个项目,然后是与第一个采样的“snr”相对应的随机“正确”值。然后,我想根据“correct”的值对较大或较小的“snr”值进行采样。该过程应重复“y”次,并显示长度y的两个向量“snr”和“correct”的输出 当前,如果函数正在工作,我的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=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)。