Witam Mam ogromny plik i chcę zaimportować tylko ostatnie 100 wierszy z tego pliku. Jak to zrobić, używając read.csv() lub jakiejkolwiek alternatywy?Jak zaimportować ostatnie 100 wierszy za pomocą read.csv() w R
Odpowiedz
Pakiet R.utils ma funkcję o nazwie countLines(). Można zrobić:
l2keep <- 10
nL <- countLines("your.csv")
df <- read.csv("your.csv", header=FALSE, skip=nL-l2keep)
Jeśli korzystasz z systemu * nix, lepiej jest użyć komendy tail -n 100
, aby pobrać ostatnie 100 wierszy. Wszystko, co zaimplementowano w R będzie wolniejsze i potencjalnie znacznie wolniejsze, twój plik jest naprawdę ogromny.
Jeśli korzystasz z systemu Windows, możesz rzucić okiem na this SO question.
tak, to prawda. Więc mówisz, że za pomocą niektórych funkcji systemu Windows, aby uzyskać ostatnie 100 wierszy umieścić go w pliku, a następnie zaimportować do R? –
Dość dużo. Możesz zrobić "seek()" i inne "fantazyjne" rzeczy w R ale powodzenia w znalezieniu czegoś, co jest tak szybkie lub proste. – ktdrv
Można użyć argumentów nrows
i skip
w read.csv
. Na przykład. Jeśli masz plik z 10000 wierszy i chcesz importować tylko ostatnie 100 wierszy można spróbować to:
read.csv("yourfile.csv",nrows=100,skip=9900)
Ale jeśli jest to przyspieszyć chcesz, jesteś prawdopodobnie lepiej z rozwiązaniami podanymi przez @Ananda Mahto i @ktdrv
dzięki za odpowiedź. Problem polega na tym, że mój rozmiar pliku jest tak duży, że nie jestem w stanie określić całkowitej liczby rekordów wierszy. –
dać odpowiednie pominąć parametr w read.csv()
to nie odpowiada na pytanie OP. Chcą * odczytać z pliku * tylko ostatnie 100 wierszy. Twoja odpowiedź zakłada, że zestaw danych został już przeczytany. –
Szybki i brudny sposób, że pracuje dla mnie - użyj fread
do odczytu dużych plików podczas ustawiania select = 1
tak, że tylko odczytana jest pierwsza kolumna. Następnie ponownie użyj fread
, aby odczytać dane z żądanych wierszy. Fread
jest znacznie szybszy niż read.csv
lub inne podobne warianty. Więcej o fread
vstutaj: Reason behind speed of fread in data.table package in R
- 1. Pobierz ostatnie 100 wierszy dzienników
- 2. pominąć niektóre wiersze w read.csv w R
- 3. Jak mogę zaimportować html za pomocą php?
- 4. Pomiń wszystkie wiodące puste wiersze w read.csv
- 5. Określanie colClasses w read.csv
- 6. Jak wybrać Top 100 wierszy w Oracle?
- 7. Nie można odczytać pliku z "#" i spacją za pomocą read.table lub read.csv w R
- 8. Jak wykonać kopię zapasową bazy danych za pomocą 100 wierszy w każdej tabeli?
- 9. Read.CSV nie działa zgodnie z oczekiwaniami w R
- 10. Jak zwrócić 100 pierwszych wierszy według wartości kolumny, a następnie wybrać losowo pierwsze 100 wierszy?
- 11. R: read.csv dodając sub-script "X" w nagłówku
- 12. read.csv vs. read.table
- 13. Gdzie zaimportować (eksportować?) Moduł za pomocą forRoot?
- 14. Jak zaimportować moduł w Pythonie za pomocą importlib.import_module
- 15. Jak zaimportować osobistą bibliotekę w innym projekcie za pomocą Stack?
- 16. Tworzenie wielu wierszy tekstu za pomocą Snap.svg
- 17. Wyłączanie podziałów wierszy za pomocą CSS
- 18. Wyszukiwanie wspólnych wierszy w R
- 19. Obliczanie procentu sumy wierszy za pomocą plyr
- 20. Załaduj plik danych w R za pomocą tryCatch
- 21. pobierz ostatnie n wierszy z wyjścia konsoli
- 22. Jak mogę zaktualizować top 100 wierszy w DB2
- 23. Jak mogę zaimportować plik zewnętrzny za pomocą TypeScript?
- 24. Jak mogę zaimportować plik CSV za pomocą zadania rake?
- 25. Jak zaimportować Mongodb ObjectId z pliku CSV za pomocą mongoimport?
- 26. pomocą graph.adjacency (R) w
- 27. Refaktoryzacja kodu R za pomocą ESS/R
- 28. Jak zaimportować dane za pomocą EntityFramework Code first Migrations
- 29. Jak zaimportować dane XML za pomocą d3.js?
- 30. Metoda kopiowania wierszy R
Jeśli obawiasz się o szybkość, spróbuj 'fread' z" data.table ", a następnie po prostu wyodrębnij potrzebne wiersze. Podobnie możesz użyć 'sqldf'. Jeśli korzystasz z systemu Unix, masz dostęp do polecenia 'tail', które może być przydatne. – A5C1D2H2I1M1N2O1R2T1
Wiem, że możemy używać poleceń specyficznych dla systemu operacyjnego, ale szukam pracy w samym R! –