Question

J'ai un énorme fichier CSV qui a une colonne numérique avec une grande valeur entière.J'ai un échantillon ci-dessous.

0, 0, 11536375, 0, 1152921504606846976, 75962, 258238559    
1, 0, 11536375, 1, 1152921504606846977, 609189, 1515555074
2, 0, 11536375, 2, 1152921504606846978, 609189, 1530344731

J'essaie de lire la colonne 1,3,5: 7 dans la trame de données R.J'ai décidé d'utiliser SQLDF pour une efficacité et parce que je l'utilise pour lire les autres sources de données déjà.Le problème est que SQLDF tronque la colonne 5 à 1.152922e + 18.Cela ressemble plus à un indice que j'aurais besoin de rejoindre un autre DF.Donc j'ai besoin de la valeur exacte.Je ne pense pas que les arguments Nrows aideront ici.J'ai besoin de lire une valeur qui semble plus haute que ce que la base peut gérer.Je pense que le paquet INT64 pourrait aider mais cela a été archivé.Toute suggestion sur la façon dont je peux lire Big Int dans SQLDF?

J'ai utilisé Scan comme un travail autour en spécifiant la colonne 5 comme chaîne.Je reçois la valeur totale maintenant mais elle est inefficace lorsqu'elle est utilisée dans les jointures / fusion.Si la lecture d'une chaîne est la seule sortie, puis-je y parvenir à SQLDF?"Quoi" et "colclasses" ne sont pas pris en charge par SQLDF.Comment puis-je mentionner que la colonne 5 devrait être traitée comme chaîne?

Était-ce utile?

La solution

Essayez ceci:

library(sqldf)

# create test data
Lines <- "a, b, c, d, e, f, g
0, 0, 11536375, 0, 1152921504606846976, 75962, 258238559    
1, 0, 11536375, 1, 1152921504606846977, 609189, 1515555074
2, 0, 11536375, 2, 1152921504606846978, 609189, 1530344731
"
cat(Lines, file = "testFile.dat")

DF <- read.csv.sql("testFile.dat", sql = 
  "select a, b, c, d, cast(e as text) e, f, g from file")

Donner:

> DF
  a b        c d                    e      f          g
1 0 0 11536375 0  1152921504606846976  75962  258238559
2 1 0 11536375 1  1152921504606846977 609189 1515555074
3 2 0 11536375 2  1152921504606846978 609189 1530344731

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