2009-09-24 39 views
283

Một người bạn đã gửi cho tôi cùng hướng dẫn tuyệt vời này trên webscraping NYtimes with R. Tôi thực sự rất thích thử nó. Tuy nhiên, bước đầu tiên là cài đặt một gói có tên RJSONIO từ nguồn.Làm cách nào để cài đặt gói R từ nguồn?

Tôi biết R khá tốt, nhưng tôi không biết cách cài đặt gói từ nguồn.

Tôi đang chạy Mac OSX.

+0

này liên quan rất chặt chẽ: http://stackoverflow.com/questions/11105131/cannot-install-r-forge-package-using-install-packages – GSee

Trả lời

337

Nếu bạn có các tập tin địa phương, sau đó sử dụng install.packages() và thiết lập repos=NULL:

install.packages(path_to_file, repos = NULL, type="source") 

đâu path_to_file sẽ đại diện cho đường dẫn và tập tin đầy đủ và tên:

  • Trên Windows nó sẽ giống như thế điều này: "C:\\RJSONIO_0.2-3.tar.gz".
  • Trên UNIX, giao diện sẽ trông giống như sau: "/home/blah/RJSONIO_0.2-3.tar.gz".
+0

Điều này cũng hoạt động nếu 'file_name_and_path' là kho lưu trữ nguồn cục bộ của gói R. –

+0

Lưu ý tùy chọn 'INSTALL_opts' có thể được sử dụng để chuyển các tùy chọn tới' R CMD INSTALL'. Ví dụ: "--no-multiarch" –

+7

Điều này dường như không hoạt động với lưu trữ zip. – Cerin

64

Tải gói nguồn, mở Terminal.app, điều hướng đến thư mục mà bạn đang có các tập tin, và sau đó thực hiện:

R CMD INSTALL RJSONIO_0.2-3.tar.gz 

Do lưu ý rằng điều này sẽ chỉ thành công khi một trong hai: a) gói không cần biên dịch hoặc b) các công cụ hệ thống cần thiết để biên dịch có mặt. Xem: https://cran.r-project.org/bin/macosx/tools/

+2

Tôi đã thử và gặp lỗi: Madjoro-MacBook-Pro: ~ Madjoro $ R CMD INSTALL RJSONIO_0.2-3.tar.gz Cảnh báo: gói không hợp lệ 'RJSONIO_0.2-3.tar.gz' Lỗi: LRI: không có gói nào được chỉ định –

+0

Bạn phải chỉ định đường dẫn chính xác đến .ta Tệp r.gz và các công cụ XCode (http://developer.apple.com/TOOLS/Xcode/) là bắt buộc. – rcs

+0

Có cách nào để xây dựng tệp .zip nhị phân từ nguồn không? – haridsv

42

Bạn có thể cài đặt trực tiếp từ kho lưu trữ (lưu ý các type="source"):

install.packages("RJSONIO", repos = "http://www.omegahat.org/R", type="source") 
+1

tôi đã cố gắng này và nhận được một lỗi: * Cài đặt * nguồn * gói 'RJSONIO' ... libs ** ** vòm - i386 sh: làm: command not found LỖI: biên soạn thất bại cho gói 'RJSONIO ' RMate dừng lại ở dòng 3 * Loại bỏ '/Library/Frameworks/R.framework/Versions/2.9/Resources/library/RJSONIO' Các gói tải về là trong \t'/private/var/thư mục/Ey/EyzhYjoKESmsmsZ6K87PeU + ++ TI/-Tmp-/Rtmpe3C96p/downloaded_packages ' Cập nhật chỉ mục gói HTML trong' .Library ' Thông báo cảnh báo: Trong install.packages ("RJSONIO", repos = "http : //www.omegahat.org/R ",: cài đặt gói 'RJSONIO' có trạng thái thoát không khác –

+5

Bạn đã cài đặt công cụ nhà phát triển chưa? Họ đến trong đĩa cài đặt Mac OS X. Vì gói này có mã C, bạn sẽ cần một trình biên dịch để cài đặt nó từ nguồn. –

+0

Tôi nghi ngờ tôi chưa cài đặt công cụ nhà phát triển. Atleast, tôi không nhớ đã cài đặt chúng. Cảm ơn! –

6

Bên cạnh đó, bạn có thể xây dựng các gói nhị phân bằng cách sử dụng tùy chọn --binary.

R CMD build --binary RJSONIO_0.2-3.tar.gz 
+17

'R CMD xây dựng - nhị phân' không được chấp nhận; sử dụng 'R CMD INSTALL --build' thay vì – f3lix

14

Mẹo bổ sung tiện dụng (nhưng nhỏ nhặt) để cài đặt phiên bản cũ hơn của gói từ nguồn.

Trước tiên, nếu bạn gọi "install.packages", nó luôn cài đặt gói mới nhất từ ​​repo. Nếu bạn muốn cài đặt phiên bản cũ hơn của gói, hãy nói về khả năng tương thích, bạn có thể gọi install.packages ("url_to_source", repo = NULL, type = "source"). Ví dụ:

install.packages("http://cran.r-project.org/src/contrib/Archive/RNetLogo/RNetLogo_0.9-6.tar.gz", repo=NULL, type="source") 

Nếu không tải xuống các gói trên đĩa cục bộ và chuyển sang dòng lệnh hoặc cài đặt từ đĩa cục bộ, tôi thấy rất thuận tiện và đơn giản hóa cuộc gọi (một bước).

Plus: bạn có thể sử dụng thủ thuật này với dev_mode DevTools của thư viện, để quản lý các phiên bản khác nhau của các gói:

tham khảo: doc devtools

3

From cran, bạn có thể cài đặt trực tiếp từ một địa chỉ kho github. Vì vậy, nếu bạn muốn gói tại https://github.com/twitter/AnomalyDetection:

library(devtools) 
install_github("twitter/AnomalyDetection") 

thực hiện thủ thuật.

-3

Tôi thích cài đặt gói từ R cran project.Tôi sẽ tìm kiếm tên gói và nếu nó có sẵn, tôi sẽ thực hiện lệnh từ trình bao R của tôi để cài đặt nó trực tiếp từ dự án R cran. Gói của bạn có sẵn trong thư mục R. Vì vậy, đây là những gì tôi sẽ làm

install.packages("RJSONIO") 

Bonus - Đang tải một gói vào phiên hiện tại của R

library(RJSONIO) 
+2

Điều này không trả lời câu hỏi, nó không phải về sở thích của bạn, nhưng làm thế nào để cài đặt từ nguồn. – GolDDranks

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