2013-06-27 73 views
6

Tôi muốn chạy tập lệnh mẫu này: http://mazamascience.com/WorkingWithData/?p=912 từ dòng lệnh của Windows. Vì vậy, tôi đã mở dòng lệnh và nhập Rscript tryCatch.R 1. Tuy nhiên, tôi vẫn nhận được thông báo lỗi Error: R not found. Tôi đã đặt biến môi trường PATH là C:\Programme\R\R-3.0.1\bin. Nếu tôi chỉ cần nhập R.exe, nó sẽ bắt đầu R, nhưng nó không thể tìm thấy các gói sẽ được nạp lúc bắt đầu (ví dụ: package 'utils' in options<"defaultPackages"> was not found). Tôi đoán tôi phải thiết lập một đường dẫn đến các thư viện ở đâu đó, nhưng tôi không có ý tưởng nào để làm điều này.R tập lệnh từ dòng lệnh

CẬP NHẬT: Sau khi nhập rõ ràng PATH C:\Programme\R\R-3.0.1\bin (thay vì chỉ thêm giá trị này vào giá trị của biến môi trường PATH) có vẻ như là R được tìm thấy. Tuy nhiên, một vấn đề mới xảy ra: In normalizePath<path.expand(path), winslash, mustWork>: path[2] = "C:/Programme/R/R-3.0.1/library": Access denied, giống với thư viện methods. Sau đó: Calls: .First ... library -> .getRequiredPackages2 -> library -> normalizePath Execution stopped. Tôi đang sử dụng Windows 7 và tôi có quyền quản trị viên.

+0

Thử sử dụng 'R CMD BATCH tryCatch.R 1'. Bạn có thể phải thay đổi kịch bản để chấp nhận các đối số dòng lệnh (nếu vậy tôi sẽ đăng một câu trả lời đầy đủ nhưng tôi tò mò muốn biết nếu nó hoạt động trước) –

+0

@ SimonO101 Cảm ơn bạn đã đề xuất, nhưng tiếc là tôi nhận được thông báo lỗi tương tự ('Lỗi: R không tìm thấy'). – AnjaM

+0

Bạn có thể muốn xem http://batchfiles.googlecode.com. Nhìn vào 'R.bat'. ví dụ. 'R.bat script myscript.R', đó là tự động nhưng yêu cầu cài đặt chuẩn hợp lý hoặc thay thế' RPathSet.bat' là một tệp lô linh hoạt trong đó bạn chỉnh sửa các biến và sau đó chạy nó trước khi chạy R để thiết lập biến môi trường của bạn. Có một pdf đi kèm với nó mà tài liệu đó. –

Trả lời

1

Tôi đã phát hiện ra rằng đó là một vấn đề ngôn ngữ cụ thể trên Windows 7, tương tự như những gì được mô tả ở đây: https://stat.ethz.ch/pipermail/r-help/2011-May/276932.html

Sau khi thay đổi PATH-C:\Program Files\R\R-3.0.1\bin sự script được thực hiện đúng từ dấu nhắc lệnh.

Nhờ tất cả những người đã cố giúp đỡ!

5

Rscript rất tiện dụng (R CMD BATCH là cách cũ) đặc biệt dưới cửa sổ, Nhưng thường theo tôi tạo một tệp lô để tránh tất cả các cơn đau đầu của đường dẫn.

Ví dụ nói launcher.bat:

@echo off 
C: 
PATH C:\Programme\R\R-3.0.1\bin;%path% 
cd PATH_TO_YOUR_RSCRIPT 
Rscript tryCatch.R 1 
pause 

Và mở một giao diện điều khiển (sử dụng cmd), đi đến nơi bạn đã lưu trữ launcher.bat của bạn và khởi động nó. Hoặc từ cosnole R sử dụng shell:

shell('path_to_launcher\launcher.bat') 
+0

Cảm ơn đề xuất của bạn, đó là một ý tưởng hay. Dựa trên nội dung của tệp trình khởi chạy của bạn, tôi đã cố gắng xác định rõ ràng 'PATH', điều này mang lại cho tôi một bước về phía trước, nhưng vẫn không hoạt động chính xác. Khi tôi đã sửa lỗi này, tôi sẽ thử chạy các tập tin batch. – AnjaM

+0

@AnjaM Tôi không hiểu tại sao bạn muốn nói rõ ràng bằng cách xác định PATH? Bạn có lỗi gì. – agstudy

+0

Tôi đã cập nhật câu hỏi ban đầu của mình và mô tả lỗi mới ở đó. Bằng cách xác định rõ ràng PATH tôi có nghĩa là thực sự viết 'PATH C: \ Program \ R \ R-3.0.1 \ bin' trong dòng lệnh trước khi gõ' Rscript tryCatch.R 1' (cách bạn làm điều đó trong tệp tin launcher của bạn) . Trước đây, tôi vừa thêm đường dẫn đến biến môi trường PATH trong Windows và nghĩ rằng điều này là đủ. – AnjaM

0

Tôi gặp sự cố này trong cửa sổ 7, khi thiết lập biến môi trường> biến người dùng đường dẫn không được thêm vào PATH, do đó người dùng phải thêm đường dẫn này vào biến hệ thống> PATH ở cuối đường dẫn đến tệp .EXE và voila của bạn.

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