2015-10-03 13 views
10

Tôi đã nâng cấp R lên phiên bản 3.2.2. Khi tôi khởi động lại Rstudio, trước khi hiển thị ">", có thông báo lỗi:"Lỗi trong công cụ ::: httpdPort <= 0L: ...." trong Rstudio có nghĩa là gì?

Error in tools:::httpdPort <= 0L : 
     comparison (4) is possible only for atomic and list types 

Điều này có nghĩa là gì? Tôi nên làm gì để xóa tin nhắn này?

+0

tính năng rstudio version của bạn là gì? Bạn có thể cần phải nâng cấp nó. Xem ví dụ https://github.com/rstudio/shinyapps/issues/144 – scoa

Trả lời

10

Nâng cấp phiên bản RStudio lên phiên bản mới nhất, nên hoạt động ở mọi hệ điều hành.

Đối với Linux/Ubuntu 14.04 sử dụng thiết bị đầu cuối, chỉ cần làm:

sudo apt-get remove rstudio 

wget https://download1.rstudio.org/rstudio-0.99.489-amd64.deb 

sudo dpkg -i rstudio-0.99.489-amd64.deb 

Bây giờ, chạy RStudio. Thông báo lỗi sẽ biến mất.

5

Tôi vừa gặp phải cùng một vấn đề ngày hôm nay và tìm kiếm thông qua mã nguồn để hiểu nguồn gốc. Lý do là cho đến khi R 3.1.3, httpdPort là một biến, trong khi kể từ R 3.2.0, nó là một hàm.

Lỗi này xảy ra, bởi vì dòng

tools:::httpdPort <= 0L 

là sai, nếu httpdPort là một hàm. Nó khá nên

tools:::httpdPort() <= 0L 

Dường như RStudio chạy dòng đó tại một số điểm và dĩ nhiên, nó cần phải biết, mà trong hai phiên bản để chạy. Đây là lý do tại sao RStudio cần được cập nhật sau khi R được cập nhật từ phiên bản < = 3.1.3 thành phiên bản> = 3.2.0.

httpdPort được định nghĩa trong tệp src/library/tools/R/dynamicHelp.R. Trong phiên bản R 3.1.3, định nghĩa đọc

httpdPort <- 0L 

trong khi ở phiên bản R 3.2.0, nó là

httpdPort <- local({ 
    port <- 0L 
    function(new) { 
     if(!missing(new)) 
      port <<- new 
     else 
      port 
    } 
}) 

Để giải pháp cho vấn đề là như vậy, hoặc là hạ cấp phiên bản R của bạn để < = 3.1.3 hoặc để nâng cấp RStudio.

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