Я пытаюсь сделать случайную выборку из фрейма данных, где выборка зависит от свойства уже отбираемого элемента. В приведенном ниже коде я пытаюсь пробовать элемент из «snr», а затем случайное «правильное» значение, соответствующее первому выбранному «snr». Затем я хочу выбрать большее или меньшее значение «snr», основанное на значении «правильный». Этот процесс следует повторять «y» раз и показывать вывод двух векторов, «snr» и «correct» длины y.Повторить цикл выборки в r
В настоящее время, если функция работает, мое 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))
}
У вас есть два опечатка в вашем коде: 'if (length (snrS
csgillespie
Приветствия, хорошее место. – EER