我正在做一项病例对照研究,我想将病例与对照按1:10的比例进行匹配,我的病例为21例,对照病例为40,000多例
out <- NULL
for (i in 1: length(patient_HRV[,10]) ){
g <-patient_HRV$SEX[i]
y <-patient_HRV$Age[i]
x <- sample((which(control_HRV$Sex==g & control_HRV$Age>=y-1 & control_HRV$Age<=y+1)), size=5 )
out <- c(out, x);
out <- out[!duplicated(out)]
if (duplicated(out)=="TRUE")
i=i-1;
out = out(size(out)-1,);
end
}我得到了这个错误
Error in sample.int(length(x), size, replace, prob) :
invalid first argument我的数据如下所示
PatientID Age MeanRR MeanBPM MedianRR MedianBPM MinRR MinBPM MaxRR MaxBPM SDNN RMSSD SEX
1527326001 56 1257 57.69 1452 41.32 422 40.38 1486 142.18 397.34 468 Female
1527326001 56 1257 57.69 1452 41.32 422 40.38 1486 142.18 397.34 468 Female发布于 2020-12-06 01:54:27
该消息表示which(control_HRV$Sex==g & control_HRV$Age>=y-1 & control_HRV$Age<=y+1)中没有匹配项。你不能从一个空的总体中抽取5个元素。
从这个更简单的示例中,您会得到相同的消息:
> sample(numeric(), 5)
Error in sample.int(length(x), size, replace, prob) :
invalid first argumenthttps://stackoverflow.com/questions/65159342
复制相似问题