Tôi đang viết một tập lệnh sử dụng roxygen2 để tự động roxygenize gói của tôi. Tôi muốn nó được thực thi để nó có thể là một phần của một kịch bản lớn hơn để chuẩn bị và cài đặt các gói, nhưng tôi không thể làm cho nó làm việc với Rscript vì lý do nào đó.Không thể gọi hàm roxygenize từ tệp lô Rscript
Đây là mã:
#!/usr/bin/env Rscript
library(roxygen2)
roxygenize('.', copy=FALSE)
này hoạt động một cách chính xác nếu tôi bắt đầu một phiên R tương tác hoặc nếu tôi gửi mã sử dụng R CMD BATCH. Tuy nhiên, tôi nhận được đầu ra và lỗi này nếu tôi chạy tập lệnh trực tiếp dưới dạng tệp thực thi qua Rscript (và tôi nhận được lỗi bất kể tập lệnh có nằm trong thư mục hiện tại hay thùng).
bin/roxygenize.R
Loading required package: digest
Warning message:
package 'roxygen2' was built under R version 2.13.2
Error in parse.files(r_files) : could not find function "setPackageName"
Calls: roxygenize -> parse.files
Execution halted
Dường như setPackageName là ở cơ sở R, vì vậy tôi không thể tìm ra lý do tại sao nó không có ở đó. Ngoài ra, tôi sử dụng Rscript trong rất nhiều tình huống khác và điều này có vẻ là nơi duy nhất mà nó không thành công.
Bất kỳ trợ giúp nào được đánh giá cao.
Đây là lỗi trong roxygen. Cho đến khi phiên bản tiếp theo xuất hiện, hãy làm việc xung quanh nó bằng cách tải các phương thức và utils một cách rõ ràng. – hadley
Cảm ơn, Hadley. Không biết tại sao lại khiến tôi khốn khổ. –