2017-08-10 49 views
7

jak przypisać bardzo długi łańcuch do zmiennej w R?błąd Komenda Lines w Rstudio konsoli

następujące prace drobne

testVar <- "test;test;" 

ale następujący daje dziwny + w konsoli RStudio.

testVar <- "test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;test;" 

Kiedy uderzę Esc przycisk i drukuj testVar, drukuje tylko test;test;

+0

Co to znaczy przypisać do zmiennej? np. 'df $ var <- testVar'? – Sotos

+0

To działa dobrze dla mnie. Czekałeś jakiś czas przed uderzeniem wejścia? – akrun

+2

@ d.b co zrobiłeś? Chociaż myślę akrun ma rację ... zbyt szybko ENTER popychanie – Sotos

Odpowiedz

10

W "An Introduction to R" manual (help.start()), sekcja 1.8:

linii poleceń wpisany na konsoli są ograniczone do około 4095 bajtów (bez znaków).

[przypis] Niektóre konsole nie pozwolą ci wprowadzić więcej, a pośród tych, które niektórzy będą milcząco odrzucać nadmiar, a niektórzy użyją go jako początku następnej linii.

W zależności od komentarzy, wydaje się, że istnieją pewne różnice między konsolami w zakresie ich obsługi. Z PO można wywnioskować, że RStudio nie pozwala na wpisanie większej liczby bajtów. Obecnie RStudio does not acknowledge or intend to address this.

Znalazłem też 2006 rozmowy w R devel mailing list gdzie Brian D. Ripley wyjaśnił kwestię oraz dokumentacji powyżej. Wygląda na to, że limit zmienił się od tego czasu (kiedy miał 1024 bajty).


Warto zauważyć, że to działa dobrze w pochodzącej skryptu (nawet gdy „zakodowana”). Wydaje się, że tylko błąd REPL.

+1

Należy zauważyć, że limit 4095 zawiera liczbę bajtów potrzebnych do nazwy zmiennej, operatora przypisania, spacji i notowań potrzebnych do utworzenia ciągu. Na przykład. 'testVar <- do.call (paste0, as.list (rep (" t ", 4081)))'. Jeśli chcesz wydrukować 'testVar', skopiuj dane wyjściowe i ponownie przypisz skopiowaną wartość (" t "powtórzone 4081) do' testVar' tak jak: 'testVar <-" tttt .....tt "", nie byłoby żadnych problemów, jednak gdyby dodać jeden znak, pojawi się znak "+" Uwaga: 'nchar (" testVar <- ")' zwraca 11, są 2 cytaty, w wyniku czego '4081 + 11 + 2 = łącznie 4094 bajtów w konsoli. –