Vấn đề ở đây là cách thức công thức được diễn giải. Trong một công thức dấu ngã phân cách phía bên tay trái từ phía bên tay phải. Trong các công thức toán tử ^
dành cho việc xây dựng các tương tác sao cho x
= x^2
= x^3
chứ không phải là công suất toán học có thể mong đợi. Nếu bạn đã nhập (x+y)^2
trình thông dịch R sẽ tạo ra (để sử dụng nội bộ tốt của chính nó), không phải là toán học: x^2 +2xy +y^2
, mà là một biểu tượng: x + y +x:y
trong đó x:y
là một cụm từ tương tác.
?formula
Chức năng I()
hoạt động để chuyển đổi đối số thành "as.is", tức là những gì bạn mong đợi. Vì vậy, tôi (x^2) sẽ trả về một vectơ các giá trị được nâng lên lũy thừa thứ hai.
~
nên được cho là đã nói "được phân phối dưới dạng" hoặc "phụ thuộc vào" khi được nhìn thấy trong các hàm hồi quy. Nó ngụ ý một thuật ngữ lỗi trong mô tả mô hình thường sẽ được dán nhãn "(Intercept)" và bối cảnh hàm và đối số cũng có thể xác định thêm một hàm liên kết như log() hoặc logit().
Trong cốt truyện() - chức năng ting nó cơ bản đảo ngược thứ tự thông thường (x, y)
của các đối số mà chức năng lô thường mất. Có một phương thức plot.formula được viết để các công thức có thể được sử dụng như một chế độ "toán học" giao tiếp với R. Trong các hàm graphics::plot.formula
, curve
và 'mạng' và 'ggplot', nó điều chỉnh số lượng các yếu tố hoặc vectơ số được hiển thị và "facetted".
Tôi đã học được sau đó ~
thực sự là một hàm nguyên thủy (hoặc tiền tố) có sẵn để tạo ra một cuộc gọi R 'có thể được truy cập với các toán tử khai thác danh sách. Tất cả điều đó được ẩn khỏi người dùng thông thường, nhưng nó có thể là một cơ sở được sử dụng bởi các tác giả hàm nâng cao hơn.
Sự quá tải của toán tử "+" được thảo luận trong phần bình luận bên dưới và cũng được thực hiện trong các gói vẽ: ggplot2 và gridExtra, ở đâu nó tách các hàm phân phối kết quả đối tượng, toán tử phân lớp. Các hàm tổng hợp có phương thức công thức sử dụng "+" làm toán tử sắp xếp và nhóm.
Nguồn
2011-11-08 18:59:09
Bất kỳ câu trả lời tuyệt vời nào cho câu hỏi này sẽ dựa nhiều vào những gì được chứa trong '? Formula'. – joran
Trùng lặp; chúng ta nên đóng một trong những điều này và làm cho kinh điển khác: [chữ cái viết hoa "I" trong công thức hồi quy tuyến tính R có nghĩa là gì?] (http://stackoverflow.com/questions/24192428/capital-letter-i-in- r-linear-regression) – smci