En r usando datos. Tabla, ¿cómo se subscita o consulta cuando el campo de criterios es un entero?

StackOverflow https://stackoverflow.com/questions/8917971

  •  30-10-2019
  •  | 
  •  

Pregunta

Estoy usando un paquete Data.Table bastante. Hay muchos ejemplos de subconjuntos, consultas o búsqueda (o como quieras llamarlo) con una búsqueda binaria que aparentemente es mucho más rápida que un escaneo vectorial. Aquí hay un extracto del archivo de ayuda.

DT["a"]                    # binary search (fast)
DT[x=="a"]                 # vector scan (slow)

Pero lo que sucede si las columnas que uno quiere buscar no es un factor (o carácter), sino que es un entero.

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,]  

Eso no funciona porque el entero 10000 se interpreta como la fila 10000 que en este datos. La Tabla no existe.

Si modificamos la sintaxis, entonces obtenemos lo que estamos buscando.

cpt.desc[cpt==10000,]

Sin embargo, eso parece mucho como si fuera el método de escaneo de vector lento. ¿Existe una función de búsqueda binaria para enteros en el paquete data.table? Agradeciéndole con anticipación de su ayuda.

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top