Dans R à l'aide de données.Table, comment un sous-ensemble ou une interrogation lorsque le champ des critères est un entier?

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

  •  30-10-2019
  •  | 
  •  

Question

J'utilise beaucoup Data.Table Package. Il existe de nombreux exemples de sous-ensemble ou de requête ou de recherche (ou comme vous voulez l'appeler) avec une recherche binaire qui est apparemment beaucoup plus rapide qu'un scan vectoriel. Voici un extrait du fichier d'aide.

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

Mais ce qui se passe si les colonnes que l'on veut rechercher n'est pas un facteur (ou un caractère) mais plutôt un entier.

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

Cela ne fonctionne pas parce que l'Integer 10000 est interprété comme la 10000e ligne qui, dans ces données. Table n'existe pas.

Si nous modifions la syntaxe, nous obtenons ce que nous recherchons.

cpt.desc[cpt==10000,]

Cependant, cela ressemble beaucoup à la méthode de balayage vectoriel lent. Existe-t-il une fonction de recherche binaire pour les entiers dans le package Data.Table? Vous remerciant en prévision de votre aide.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top