के बजाय रोल = "निकटतम" रिटर्न "खोज मूल्य" के साथ जुड़ें मुझे बाइनरी खोज फ़ंक्शन J()
और roll = "nearest"
के साथ कोई समस्या मिली है।डेटाटेबल मूल मूल्य
चलो कहते हैं कि मैं इस उदाहरण data.table "डीटी"
Key Value1 Value2
20 4 5
12 2 1
55 10 7
मिले हैं मुझे क्या करना roll = "nearest"
के साथ एक खोज:
dt[J(15), roll = "nearest"]
... जो रिटर्न:
Key Value1 Value2
15 2 1
इस प्रकार, सही पंक्ति वापस आती है। हालांकि, मूल "कुंजी" मान (12) को खोज में उपयोग किए गए मान (15) द्वारा प्रतिस्थापित किया गया है।
मेरा सवाल यह है कि एक सामान्य व्यवहार है और क्या कोई इस ऑटो ओवरराइड को बदल सकता है?
संपादित करें:
प्रतिलिपि प्रस्तुत करने योग्य उदाहरण (ध्यान दें मैं संस्करण 1.9.7 का उपयोग करें):
library("data.table")
dt <- data.table(c(20,12,55), c(4,2,10), c(5,1,7))
dt
# V1 V2 V3
#1: 20 4 5
#2: 12 2 1
#3: 55 10 7
setkey(dt, V1)
dt[J(15), roll = "nearest"]
# V1 V2 V3
#1: 15 2 1
यह आधार आर से विरासत में मिला है, और [data.table # 1615] (https://github.com/Rdatatable/data.table/issues/1615) से संबंधित है। यदि आप पुनरुत्पादित उदाहरण प्रदान करेंगे तो मैं आपको समाधान देने की कोशिश करूंगा ... – jangorecki
आपके उत्तर के लिए धन्यवाद! पुनरुत्पादित उदाहरण से आपका मतलब कुछ ऐसा है? – Lennie
हां, बस आसान प्रतिलिपि और पेस्ट के लिए थोड़ा संपादित किया गया है, यह लोगों को जवाब देने के लिए प्रोत्साहित करता है :) – jangorecki