मैं 2 dataframes मैं कहाँ खोजने की जरूरत है कि कैसे कई बार प्रविष्टियों में नकली$num सीमा के भीतर गिर के x-y द्वारा निर्दिष्ट सीमा dataframe.
id <- c(1:9)
num <- c(99,101,199,250,999,1500,3000,4000,5000)
mock <- data.frame(id, num)
x <- c(100,100,200,1000,4000,4000)
y <- c(198,200,300,2000,5000,5000)
range <- data.frame(x,y)
वांछित आउटपुट के नीचे दिखाया गया है
id num check
1 99 0
2 101 2
3 199 1
4 250 1
5 999 0
6 1500 1
7 3000 0
8 4000 2
9 5000 2
जो द्वारा प्राप्त किया जा सकता निम्न कोड
mock$check <- mapply(
function(x){
count = 0
for (i in 1:nrow(range)){
if (x >= range$x[i] & x <= range$y[i]){
count = count + 1
}
}
paste0(count)
},
mock$num
)
उपरोक्त दृष्टिकोण के लिए अनुपयुक्त है, बड़े डेटासेट के कारण पाश के लिए और मैं कोशिश कर रहा था का उपयोग करने के लिए एक गैर-सम में शामिल होने विधि (के माध्यम से data.table
). हालांकि, मैं फँस गया हूँ के रूप में करने के लिए कैसे करने के लिए एक गैर-सम में शामिल होने के दो तालिकाओं के बीच (नहीं यकीन है कि कैसे करने के लिए आगे बढ़ना करने के लिए...)
nonequi <- mock[range, on =.(num >= x, num <=y),]
होगा की तरह की तलाश करने के लिए कुछ मार्गदर्शन करने के लिए इस समस्या है. तुम्हारी मदद की सराहना.