Tôi đã viết một hàm toán tử nhị phân cho R (ví dụ: một với tên như %X%
để thay vì phải nhập %X%(a,b)
Tôi có thể sử dụng cú pháp thuận tiện hơn a %X% b
. Mục tiêu của tôi là có một hàm bao cho <-
. được thực hiện cho các đối tượng trong môi trường đó và kiểm tra thuộc tính 'được bảo vệ' để cảnh báo người dùng trước khi ghi đè lên đối tượng đó. là a %X% b
_và đó cũng là tất cả, một giá trị của b và c bị bỏ qua hoàn toàn a %X% (b + c)
hoạt động và do đó, %X%(a, b + c)
nhưng toàn bộ điểm viết này là ab nhà điều hành nội bộ là để tránh dấu ngoặc đơn.Trong R, làm thế nào để có được toàn bộ dòng lệnh vào sys.call() của một toán tử nhị phân?
Nếu tôi ghi đè <-
, thì sys.call()
sẽ thấy mọi thứ ở bên trái và bên phải của nó. Tại sao tôi chỉ nhìn thấy các tên liền kề từ dòng lệnh?
Đây là mã mà sao chép vấn đề này:
`%X%` <- function(...){
print(deparse(sys.call()));
}
a %X% 3 + 1:10;
Các kết quả mong muốn là "một% X% 3 + 1:10" Kết quả quan sát là "một% X% 3"
Cảm ơn.
Odd; khi tôi chạy mã (R 2.15.1) tôi nhận được 'Lỗi trong một% X% 3 + 1:10: đối số phi số để toán tử nhị phân ' –
@DavidRobinson, lỗi đến từ toán tử' + 'khi cố gắng tổng kết quả đầu ra của 'a% X% 3' của ký tự kiểu với' 1: 10' của kiểu số. – flodel