2012-11-28 26 views
5

Tôi có một vài dự án RStudio mà tôi đã thiết lập để tự động hóa các tác vụ như chấm điểm nhiều kiểm tra lựa chọn. Các chức năng cần thiết để thực hiện các tác vụ chỉ được lưu trong một tệp văn bản và để đảm bảo chúng có sẵn cho tôi hoặc người dùng khác, tôi đã sử dụng tệp .Rprofile chỉ chạy một cái gì đó như source("MyFunctions.R") khi khởi động. Nếu tệp .Rprofile nằm trong thư mục cơ sở của dự án RStudio, nó sẽ tự động chạy khi mở dự ánĐảm bảo tất cả các gói mặc định được tải trước khi chạy .Rprofile

Tuy nhiên, tôi gặp phải các lỗi thường gặp. nguồn gốc, chức năng như read.csv hoặc installed.packages, ví dụ:

Error in eval(expr, envir, enclos) : 
    could not find function "installed.packages" 

có một số cách để chờ đợi cho các gói mặc định để tải trước source() đang chạy, thay vì thêm rõ ràng library() cuộc gọi cho tất cả các gói mặc định mà không tải?

Trả lời

6

này, từ ?Startup có vẻ khá dứt khoát:

Lưu ý rằng khi các trang web và lý lịch thành viên file có nguồn gốc chỉ gói 'cơ sở' được nạp, vì vậy các đối tượng trong các gói khác cần phải được giới thiệu đến ví dụ 'utils :: dump.frames' hoặc sau khi rõ ràng tải gói có liên quan.

Dựa trên đề xuất rõ ràng đó, sử dụng library() để tải các gói cần thiết giống như đặt cược tốt nhất của bạn.

+0

Cảm ơn, có vẻ như tôi nên suy nghĩ lại bằng cách sử dụng '.Rprofile' cho những thứ này. Tôi đã coi nó như là một cách nhanh chóng và thuận tiện để tự động tải các chức năng và chạy các kịch bản, và nó không có vẻ như nó thực sự hoạt động như thế. – Marius

+0

Nếu bạn chưa thấy nó, bạn có thể quan tâm đến SO [r] -tag cổ điển này: http://stackoverflow.com/questions/1189759/expert-r-users-whats-in-your-rprofile –

1

Được chỉ về phía tài liệu ?Startup bởi câu trả lời của Josh, nó trông giống như thêm một cuộc gọi .First.sys() ở đầu .Rprofile có thể là một lựa chọn, vì điều đó có vẻ là chức năng để xử lý tải của tất cả các gói mặc định. Nó thường chạy sau .Rprofile, điều này sẽ giải thích các lỗi tôi nhận được.

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