2015-03-16 8 views
9

Ten błąd wystąpił, gdy użyłem paczki w R do ładowania danych, w tym pakiecie użyto pakcage rJava.Błąd w ls (envir = envir, all.names = private): nieprawidłowy argument "envir" w R

każdym razem uruchomić funkcję, błąd jest

Error in ls(envir = envir, all.names = private) : 
    invalid 'envir' argument 

Ten pakiet Udowodniono bez problemu, po prostu jakiś problem ochrony środowiska w moim komputerze.

kiedy debugowany, stwierdziliśmy, że w ostatnim procesie przed ls(envir=envir,all.names = private) zmienna envir jest NULL, która powinna być jakaś wartość NULL, ale nie myślę.

Po kilku próbach rozwiązałem problem, instalując za każdym razem rJava. I dodatkowo, tylko gdy pojawi się błąd, zainstaluję "rJava", to zadziała. Jeśli zainstaluję na początku, nie zadziała. Myślę więc, że instalacja "rJava" (lub prawdopodobnie instalacja pakietów) spowoduje zmianę niektórych zmiennych środowiskowych.

Zarówno Java 7, jak i Java 8, w tym testowane jdk lub jre, nie działają. A dla R używam wersji 3.1.3 R i wszystkie pakiety są aktualne.

Poniżej przedstawiono niektóre informacje, które mogą być przydatne przy rozwiązywaniu problemów.

Instalując pakiet, jvm.dll needs to be added to the windows environment path: "Path" i zrobiłem to.

My sessionInfo przedstawiono poniżej:

R version 3.1.3 (2015-03-09) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=Danish_Denmark.1252 LC_CTYPE=Danish_Denmark.1252 LC_MONETARY=Danish_Denmark.1252 LC_NUMERIC=C     
[5] LC_TIME=Danish_Denmark.1252  

attached base packages: 
[1] grid  stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] rgdal_0.9-1   fields_8.2-1   spam_1.0-1    raster_2.3-33   sp_1.0-17    ecomsUDG.Raccess_2.2-6 
[7] downscaleR_0.5-2  maps_2.3-9    downscaleR.java_0.0-2 rJava_0.9-6   gWidgetsRGtk2_0.0-83 cairoDevice_2.22  
[13] RGtk2_2.20.31   gWidgets_0.0-54  R.utils_2.0.0   R.oo_1.19.0   R.methodsS3_1.7.0  

loaded via a namespace (and not attached): 
[1] abind_1.4-3  bitops_1.0-6  boot_1.3-15  CircStats_0.2-4 colorspace_1.2-6 dtw_1.17-1  lattice_0.20-30 MASS_7.3-39  
[9] munsell_0.4.2  plyr_1.8.1  proxy_0.4-14  Rcpp_0.11.5  RCurl_1.95-4.5 scales_0.2.4  tools_3.1.3  verification_1.41 

Dziękuję za wszelką pomoc można dostarczyć.

+0

_Wskaźniki środowiskowe_ są pojęciem systemu operacyjnego i mogą być dostępne w R za pomocą 'Sys.getenv' i' Sys.setenv'. Są to zasadniczo odwzorowanie nazw zmiennych na wartości np. 'JAVA_HOME = C: \ Program Files \ Java \ jre6'. Z drugiej strony _R environments_ są jak listy, które odwzorowują nazwy na dowolny obiekt R. Zobacz: http://adv-r.had.co.nz/Environments.html. 'ls()' zwraca wektor wszystkich nazw w środowisku R, określonym przez argument "envir". Nie ma sensu nazywać 'ls (envir = NULL)', stąd twój błąd. – logworthy

+0

@logworthy Dzięki, ale to nie ja nazwałem .... jest w paczce .... a problem nie polega na wywołaniu 'ls()', chodzi o to, że nie może znaleźć prawidłowego 'envir' ... – 163

+0

powinieneś dodać więcej informacji na temat debugowania. Przeczytaj o debugowaniu w R, na przykład użyj opcji (błąd = odzyskaj) przed uruchomieniem kodu, aby uzyskać ślad stosu. –

Odpowiedz

1

Czy w pełni rozwiązałeś swój problem? Kilka dni temu miałem podobny problem, rozwiązałem go i chciałem podzielić się ze społecznością. W rzeczywistości te funkcje opakowania (w moim przypadku pakiet Rbbg) wywoływały funkcje rJava miały plik dziennika w folderze użytkownika na dysku C, można było usunąć te pliki dziennika, ponieważ umożliwi to ucieczkę od komunikatu o błędzie. enter image description here

W moim przypadku muszę usunąć pliki blpjavaapi0.log.0 i org.findata.blpwrapper.0 utworzone przez pakiet Rbbg.

+0

Dziękuję bardzo, niestety, nie pracuję już nad projektem. Ale poinformuję osobę, która jest odpowiedzialna, aby pozwolił mu spróbować – 163