Tôi không thể tìm thấy tài liệu cho việc này. Có vẻ như mã nguồn R sử dụng NewEnvironment
và R_NewHashedEnv
nhưng không có mã nguồn nào trong các tiêu đề công khai, vì vậy có vẻ như chúng không có sẵn cho tôi với tư cách người dùng. Tôi nên sử dụng chức năng nào (hoặc những dòng mã nào) để tạo ENVSXP mới?Làm thế nào để tạo một môi trường R mới từ C?
Trả lời
Bạn muốn allocSExp
:
/* C code in foo.c */
#include "Rinternals.h"
SEXP foo() {
SEXP res = allocSExp(ENVSXP);
return res;
}
> # R code (after running R CMD SHLIB foo.c)
> dyn.load("foo.dll")
> .Call("foo")
<environment: 0x016a4084>
Tại sao không phải là một hoặc hai lót bằng cách sử dụng [inline] (http://cran.r-project.org/package=inline)? Ngoài ra, bạn phân bổ, bạn không cần phải BẢO VỆ/KHÔNG BẢO VỆ? –
@DirkEddelbuettel: buồn khi nói, tôi không sử dụng nội tuyến thường xuyên (F- cho tôi). Tôi không gọi bất kỳ macro nào sau khi phân bổ trong ví dụ đơn giản này, vì vậy không có khả năng phân bổ khác (và GC tiềm năng) trước khi hàm của tôi thoát. Tôi nên rõ ràng hơn về điều đó. –
Rõ ràng là một trường hợp cố gắng của tôi quá khó. Ở đó tôi đã tìm kiếm một số chức năng allocEnv, khi phân bổ SEXP cơ bản nhất là tất cả những gì tôi cần. [Và có, tôi đã thêm các macro yelly thích hợp]. Bạn nhận được điểm thưởng nếu bạn có thể chỉ cho tôi tài liệu thảo luận về việc sử dụng các chức năng như allocSExp ... –
- 1. Làm thế nào để tạo một biến môi trường mới trong UNIX ....?
- 2. Làm thế nào để tạo một môi trường mới trong Ruby on Rails?
- 3. Tạo môi trường mới trong Rails
- 4. Làm thế nào để tạo một môi trường desktop đơn giản?
- 5. Làm cách nào để tham chiếu môi trường cục bộ trong một hàm, trong R?
- 6. Có những cách nào để làm sạch môi trường R từ các đối tượng?
- 7. R: tra cứu môi trường
- 8. Làm thế nào để biết môi trường mã nào chạy?
- 9. Làm thế nào để sao chép/sao chép một môi trường ảo từ máy chủ web
- 10. Làm thế nào để khởi động python Idle từ một môi trường ảo (virtualenv)
- 11. Đọc một biến môi trường từ applicationContext.xml
- 12. Định nghĩa lại lệnh trong một môi trường mới
- 13. Tùy chỉnh môi trường ESS cho R
- 14. Làm thế nào để mô phỏng môi trường IE8?
- 15. Làm thế nào tôi có thể tạo ra một ties.method mới với hàm R rank()?
- 16. làm thế nào để nối hai từ điển để tạo một từ điển mới trong Python?
- 17. Virtualenv không tạo môi trường
- 18. R: sao chép/di chuyển một môi trường khác
- 19. Sự cố khi tạo môi trường lstnewen môi trường bắt đầu/kết thúc một môi trường khác
- 20. Làm mới biến môi trường cho giải pháp VS mở
- 21. Làm thế nào để làm mới singleton trong C#
- 22. Tạo một người dùng MySQL mới Trong môi trường RDS của Amazon
- 23. Làm thế nào để truy cập các biến môi trường linux từ maven pom?
- 24. Làm thế nào để tạo một mảng từ một chuỗi bằng dòng mới trong JavaScript?
- 25. Môi trường nô lệ Jenkins Thay đổi làm mới
- 26. Làm thế nào để tạo một hàm R theo lập trình?
- 27. đặt biến môi trường cho hệ thống() trong R?
- 28. Sử dụng PIP trong một môi trường ảo, làm thế nào để cài đặt MySQL-python
- 29. Làm thế nào để tạo một môi trường bảng tự định nghĩa với chú thích ở cuối bảng bằng LaTeX?
- 30. C# using Conditional() với biến môi trường
Nếu bạn cho phép C++, tôi có thể chỉ cho bạn cách để làm điều đó thông qua Rcpp. –