Nhập hàm và biến R [trùng lặp]

Nov 19 2020

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

1 ÁlvaroA.Gutiérrez-Vargas Nov 19 2020 at 02:29

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.

alex_danielssen Nov 19 2020 at 02:26

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")