Nhập hàm và biến R [trùng lặp]
Tôi đang sử dụng một gói từ github và các chức năng trong đó không được ... kết nối. Tệp chính có một chức năng nhưng để làm cho chức năng đó hoạt động, tôi cần chạy 4 tệp khác nhau (3 tệp có rất nhiều chức năng trong đó và 1 tệp có lớp). Chúng tôi có bất kỳ tùy chọn nào để nhập toàn bộ tập lệnh (với tất cả các hàm, lớp, biến) trên tệp chính của tôi để chúng xuất hiện trong môi trường của tôi không?
cho exmaple trong tệp "foo.R" tôi có một hàm "food = function (...)" vì vậy tôi thích
from foo.R import food
result <- 2*food(a,b,c)
hoặc là
from foo.R import *
result <- 2*foo.food(a,b,c)
như trong con trăn?
Trả lời
Tôi nghĩ bạn nên xem sự kết hợp của here+ source. Về cơ bản, những gì bạn có thể làm như sau:
library(here)
source(here::here('R', 'file_that_contains_a_lot_of_functions.R'))
Bằng cách đó, bạn sẽ nhận được tất cả các chức năng file_that_contains_a_lot_of_functions.Rtrong GlobalEnviromentđó giúp bạn dễ dàng làm việc với chúng.
PS1: 'R'ở trên là do tôi giả sử bạn đã tải xuống bản sao của thư viện từ Github và bạn đang lấy các chức năng từ Rthư mục.
PS2: nó cũng giả định rằng bạn đã tạo một dự án ở cấp độ của thư mục chính của gói. Những gì tôi cũng làm là tạo một thư mục bổ sung my_folder, nơi tôi lưu trữ mọi thứ mà tôi tạo để không làm xáo trộn quy trình làm việc của gói gốc.
sử dụng mã nguồn lệnh () và đưa vào tệp để chạy - sau đó bạn sẽ có quyền truy cập vào tất cả các đối tượng bên trong.
source ("path / to / your / file.R")