2013-01-02 22 views
17

Używam nowy data.table:::fread funkcji (funkcja najszybszy odczyt Mam używany w badania do tej pory) i mam następujące (wymowne) wyjątek:data.table fread funkcja

R) fread(path) 
Erreur dans fread(path) : Coercing integer64 to real needs to be implemented 

moim pliku (który to csv oddzielone tabulatorami) rzeczywiście zawiera duże liczby całkowite, takie jak 902160000671352000. Moje pytanie brzmi, czy mogę powiedzieć fread, aby # NIE # odczytał drugą kolumnę (gdzie są te potwory)?

+1

może być łatwiejsze do odczytania 'fread', aby odczytać w tych kolumnach jako znaki lub czynniki. Masz dane i zawsze możesz później przeprowadzić konwersję typu. –

+0

Moim rozwiązaniem jest użycie polecenia unix 'cut -f1,3- myFile.txt' i późniejsze uruchomienie ... – statquant

+0

" help (fread) "stwierdza, że ​​wykrywany jest także typ bit64 :: integer64 i przeczytaj bezpośrednio, bez potrzeby czytania jako znak, następnie konwertuj "Używam 32-bitowego systemu operacyjnego (XP). Czy to problem ? czy mogę przekonwertować te int64 na char? – statquant

Odpowiedz

11

Dobre pytanie. Jeszcze nie, ale tak, będziesz w stanie. Zgadzam się z wszystkimi komentarzami.

Lista DO DO znajduje się na górze readfile.c source. Jeśli czegoś brakuje, daj mi znać. Ta lista obejmuje akceptowanie nadpisań typów, implementowanie niewspółśrodkowych blokad i zezwalanie na pomijanie kolumn. Mamy nadzieję, że wszystko zostanie zrobione dla pierwszego wydania w wersji 1.9.0.

fread jest obecnie w wersji 1.8.7, która jest rozwijana na R-Forge. Po zakończeniu zostanie wydany jako 1.9.0 do CRAN. .0 wskazuje, że nowe funkcje mogą ewentualnie zmienić nazwy argumentów i zachowanie; tj. nie zdziw się, jeśli w roku 1.9.1 wprowadzone zostaną niekompatybilne zmiany w odniesieniu do fread. Biorąc pod uwagę jego naturę, trudno jest sobie wyobrazić, że coś poważnego się zmieni. Ale właśnie dlatego opublikowałem jego dostępność na R-Forge, aby wcześnie zacząć działać i uzyskać takie wyniki.