我確實有一個數據集N
我想加入參考表REF
。問題是,在數據集中,我沒有合適的主鍵。我的想法是用周圍的工作來承認它的缺點。因此,我將使用數字變量來查找近似匹配並將其加入數據集。 我試過Merging two datasets on approximate values並試圖適應它但失敗。棘手位似乎數據,並在類似1倍的值的參考表中隨機選擇:用參考表中的隨機選擇近似加入
N <- data.table(NR = c("999", "999", "999", "999", "999", "999", "999", "999", "999", "999", "999", "999", "999", "999", "999"),
year = c("2012", "2012", "2012", "2012", "2012", "2012", "2012", "2012", "2012", "2012", "2012", "2012", "2012", "2012", "2012"),
los = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1))
REF <- data.table(nr =c("A60D", "A91Z", "B70H", "B78C", "E64D", "F49F", "I66E", "I68E", "J68Z", "K63C", "L70A", "L70B", "L71Z", "O64B", "P60A", "P60C", "R65A", "R65B", "S60Z", "U60A", "U60B", "W60Z", "Y63Z"),
alos = c(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.5, 1.4, 1.0, 1.0, 1.0, 1.0, 1.0, 1.3, 1.0))
這個例子產生必然更多的數據 - 但我不能左右的適當選擇得到最重要的解決方案採摘參考隨機爲1。
REF[, los := alos]
setkey(N, los)
setkey(REF, alos)
NEW <- N[REF, roll='nearest']
Desired output one row per row in N:
NR year los nr alos
999 2012 1 A60D 1.0
999 2012 1 A91Z 1.0
999 2012 1 A91Z 1.0
999 2012 1 W60Z 1.3
999 2012 1 P60C 1.4
999 2012 1 A91Z 1.0
你是如何描述你想要的輸出? –
我添加了一個可能的摘錄 - 分發可以是隨機的 – chrischi