In r utilizzando data.table, come fa un sottoinsieme o una domanda quando il campo criteri è un numero intero?
-
30-10-2019 - |
Domanda
Sto usando un po 'di pacchetto dati. Esistono molti esempi di sottoinsieme o interrogazione o ricerca (o come vuoi chiamarlo) con una ricerca binaria che è apparentemente molto più veloce di una scansione vettoriale. Ecco un estratto dal file di aiuto.
DT["a"] # binary search (fast)
DT[x=="a"] # vector scan (slow)
Ma cosa succede se le colonne su cui si desidera cercare non è un fattore (o carattere) ma piuttosto è un numero intero.
cpt <- c(23456,23456,10000,44555,44555)
description <- c("tonsillectomy","tonsillectomy in >12 year old","brain transplant","castration","orchidectomy")
cpt.desc <- data.table(cpt,description)
setkey(cpt.desc,cpt)
cpt.desc[10000,]
Ciò non funziona perché l'intero 10000 è interpretato come la 100a riga che in questi dati. Tabella non esiste.
Se modifichiamo la sintassi, otteniamo ciò che stiamo cercando.
cpt.desc[cpt==10000,]
Tuttavia, sembra molto come se fosse il metodo di scansione vettoriale lento. Esiste una funzione di ricerca binaria per i numeri interi nel pacchetto Data.Table? Ringraziandoti in previsione del tuo aiuto.
Nessuna soluzione corretta