Zgodnie z dokumentacją R "Limitów pamięci", nie można przydzielić wektora o długości dłuższej niż 2^31-1. Dzieje się tak dlatego, że liczba całkowita używana jako indeks może wykorzystywać tylko 31 bitów (jeden bit dla znaku). Ale w systemie 64-bitowym powinienem móc przydzielać dłuższe wektory. Dlaczego R narzuca tę samą maksymalną długość w systemach 64-bitowych? Czy istnieje sposób na obejście limitu?Maksymalna długość wektora w R
Odpowiedz
Jeśli chcesz pracować z wersją rozwojową R, możesz mieć eksperymentalną obsługę tej funkcji. Z http://stat.ethz.ch/R-manual/R-devel/doc/html/NEWS.html:
LONG wektorami
Istnieje początki wsparcie dla wektorów dłuższych niż 2^31 - 1 elementami platform 64-bitowych. Dotyczy to nieprzetworzonych, logicznych, całkowitych, wektorów podwójnych, złożonych i znakowych, a także list. (Elementy z wektorów znakowych są ograniczone do 2^31 - 1 bajtów.)
Wszystkie aspekty są obecnie eksperymentalne.
Co można zrobić z takimi wektorami jest obecnie nieco ograniczone, , a większość operacji zwróci błąd "długie wektory nieobsługiwane jeszcze ". Mogą być serializowane i niezsizedalizowane, wymuszone, identyczne() i object.size(), praca i środki mogą być obliczane. Ich długości mogą wynosić get i ustawione przez xlength(): długość wywołania() na długim wektorze spowoduje błąd o wartości .
Większość aspektów indeksowania jest dostępna. Ogólnie dwuwartościowe indeksy mogą być używane do dostępu do elementów wykraczających poza 2^31 - 1.
Zobacz link, aby uzyskać więcej informacji. Sam w ogóle tego nie eksperymentowałem, więc nie mogę wypowiedzieć się, czy jest to praktycznie użyteczne, czy nie.
Po przejściu do http://developer.r-project.org/R_svnlog_2011 (i http://developer.r-project.org/R_svnlog_2012) i wyszukaniu "długich wektorów" można uzyskać poczucie wykonywanej pracy.
Świetna propozycja skanowania przez log svn. Widząc, że jest to zasadniczo "ripley, ripley, ripley, ..." kto wykonuje pracę przypomina mi [ten post] (http://dirk.eddelbuettel.com/blog/2007/08/11/) z powrotem w dzień. –
Oto kilka szczegółów, które uzupełnią odpowiedź Bena. Ograniczenia wydają się być dziedziczone z języków programowania niższego poziomu używanych do budowania R, szczególnie (podobno) kodu FORTRAN. Więc, oczywiście, przeniesienie R, aby mógł w pełni wykorzystać 64-bitowe systemy adresowania, będzie dużym projektem.
Nawet na 64-bitowe wersje systemu R istnieją ograniczenia dotyczące wielkości obiektów R (patrz pomoc („pamięć granic”), z których niektóre wynikają z zastosowania 32-bitowe liczby całkowite (szczególnie w kodzie FORTRANA) .Wszystkie kompilacje R, maksymalna długość (liczba elementów) wektora wynosi 2^31-1, około 2 miliardy, a na 64-bitowych rozmiar bloku Ilość przydzielonej pamięci jest ograniczona do 2^34-1 bajtów (8 GB) .Oczekuje się, że zostaną one w końcu podniesione *, ale potrzeba obiektów 8 GB jest (gdy została napisana w 2011 r.) wyjątkowa.
(W tym podręczniku jest też błędny przypis, w którym umieściłem *
, zauważając, że "ten komentarz był w instrukcji od 2005". :)
- 1. Maksymalna długość segmentu w Go
- 2. SQL CE Maksymalna długość
- 3. Maksymalna długość bajtu []?
- 4. Maksymalna długość kolejki scala
- 5. ConvertFrom-Json maksymalna długość
- 6. Maksymalna długość ** parametrów argv
- 7. SQLAlchemy - maksymalna długość kolumny
- 8. Maksymalna długość tytułu Atrybut
- 9. Maksymalna długość zapytania SQL
- 10. Replikacja wektora w R
- 11. Maksymalna długość nie dotyczy migracji
- 12. Jaka jest maksymalna długość ListProperty?
- 13. ServiceId.UniqueId Maksymalna długość i format
- 14. Maksymalna długość dla GWT TextArea
- 15. Maksymalna długość hasła użytkownika MySQL
- 16. Maksymalna długość ciągu Sqlite Androida?
- 17. SteamID64 minimalna i maksymalna długość
- 18. Maksymalna długość RFC 4122 w wersji 4
- 19. Jaka jest maksymalna długość wyciągu w Oracle
- 20. Jaka jest maksymalna długość łańcucha w PHP?
- 21. Maksymalna długość nazwy tabeli w MySQL
- 22. maksymalna długość nazwy pliku w systemie Android
- 23. maksymalna długość żądań w pliku node.js
- 24. Maksymalna długość nazwy kolumny w MySQL
- 25. Powtórz elementy wektora w R
- 26. Tytuł ikony aplikacji Apple IOS: maksymalna długość?
- 27. WebApi 2 Maksymalna długość żądania przekroczyła
- 28. System.Web.HttpException (0x80004005): Maksymalna długość żądania przekroczyła
- 29. Oracle numer Format modelu Maksymalna długość
- 30. Maksymalna długość tekstowej reprezentacji adresu IPv6?
Należy pamiętać, że ten limit został usunięty w wersji R-3.0.0. –