Sto lavorando con un set di dati che ha diverse colonne che rappresentano numeri interi di numeri interi (ad esempio transactionId e accountId). Questi numeri ID sono spesso di 12 cifre, il che li rende troppo grandi per essere archiviati come un numero intero a 32 bit.In R è meglio usare integer64, numerico o carattere per numeri interi di numeri interi grandi?
Qual è l'approccio migliore in una situazione come questa?
- Leggere l'ID come stringa di caratteri.
- Leggere l'ID come numero intero64 utilizzando il pacchetto bit64.
- Leggere l'ID come numerico (vale a dire doppio).
Sono stato avvisato dei pericoli di testare l'uguaglianza con il doppio, ma non sono sicuro se questo sarà un problema nel contesto del loro utilizzo come ID, dove potrei unire e filtrare in base ad essi, ma mai fare aritmetica sui numeri ID.
Le stringhe di caratteri sembra intuitivamente come dovrebbe essere più lento di prova per l'uguaglianza e fare fonde, ma forse, in pratica, non fa molta differenza.
concettualmente questi sono personaggi (o anche una variabile fattore) e io li trattano come tale. Un'unione data.table con una chiave di carattere è molto veloce. – Roland