2015-03-16 14 views
9

Tôi gặp phải lỗi này khi tôi sử dụng gói trong R để tải dữ liệu, trong gói này, pakcage rJava đã được sử dụng.Lỗi trong ls (envir = envir, all.names = private): đối số 'envir' không hợp lệ trong R

Mỗi lần tôi chạy một chức năng, lỗi này là

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

Gói này đã được chứng minh không có bất kỳ vấn đề, chỉ cần một số vấn đề môi trường trong máy tính của tôi.

khi tôi sửa lỗi, tôi thấy rằng trong quá trình cuối cùng trước khi ls(envir=envir,all.names = private) biến envirNULL, mà nên có một số giá trị nhưng không phải là NULL tôi nghĩ.

Sau một số thử nghiệm, tôi đã giải quyết được vấn đề, bằng cách cài đặt rJava mỗi lần. Và ngoài ra, chỉ khi lỗi xuất hiện, sau đó tôi cài đặt 'rJava', nó sẽ hoạt động. Nếu tôi cài đặt ở lần đầu tiên, nó sẽ không hoạt động. Vì vậy, tôi đoán, cài đặt 'rJava' (hoặc có thể cài đặt gói), sẽ khiến một số biến môi trường thay đổi.

Hoặc Java 7 và Java 8, bao gồm jdk hoặc jre được kiểm tra, không hoạt động. Và đối với R, tôi đang sử dụng 3.1.3 R và tất cả các gói được cập nhật.

Sau đây là một số thông tin mà tôi nghĩ có thể hữu ích cho việc khắc phục sự cố.

Bằng cách cài đặt gói, jvm.dll needs to be added to the windows environment path: "Path" và tôi đã làm điều đó.

My sessionInfo được hiển thị dưới đây:

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 

Cảm ơn bạn cho bất kỳ giúp bạn có thể cung cấp.

+0

_Các biến môi trường_ là khái niệm hệ điều hành và chúng có thể được truy cập trong R thông qua 'Sys.getenv' và' Sys.setenv'. Về cơ bản, chúng là bản đồ các tên biến cho các giá trị, ví dụ: 'JAVA_HOME = C: \ Program Files \ Java \ jre6'. Mặt khác, môi trường _R giống như các danh sách ánh xạ các tên tới bất kỳ đối tượng R nào. Xem: http://adv-r.had.co.nz/Environments.html. 'ls()' trả về một vectơ của tất cả các tên trong môi trường R, được xác định bởi đối số 'envir'. Nó không có ý nghĩa để gọi 'ls (envir = NULL)', do đó lỗi của bạn. – logworthy

+0

@logworthy Cảm ơn, nhưng đó không phải là tôi đã gọi .... nó nằm trong gói .... và vấn đề không phải là về việc gọi 'ls()', mà là nó không thể tìm thấy 'envir' hợp lệ ... – 163

+0

bạn nên thêm nhiều thông tin gỡ lỗi hơn. Đọc về gỡ lỗi trong R, ví dụ: tùy chọn sử dụng (error = recovery) được fore chạy mã của bạn để bạn có được một dấu vết stack. –

Trả lời

1

Bạn đã giải quyết xong vấn đề của mình chưa? tôi đã có một vấn đề tương tự chỉ một vài ngày trước, sắp xếp nó ra và muốn chia sẻ với cộng đồng. Trên thực tế các chức năng bao bọc (trong trường hợp của tôi, gói Rbbg) gọi hàm rJava có tệp nhật ký trong thư mục người dùng của bạn dưới ổ C, bạn có thể xóa các tệp nhật ký đó vì nó sẽ cho phép bạn thoát khỏi thông báo lỗi. enter image description here

Trong trường hợp của tôi, tôi cần xóa tệp blpjavaapi0.log.0 và org.findata.blpwrapper.0 được tạo bởi gói Rbbg.

+0

Cảm ơn bạn rất nhiều, thật không may, tôi không làm việc trên dự án nữa. Nhưng tôi sẽ thông báo cho người phụ trách, để anh ta thử ~ – 163

Các vấn đề liên quan