Bạn chưa từng tham gia điều này trước đây. Từ trang giúp đỡ của pairs.panels
trong gói psych
, người ta thấy như sau:Tên của cú pháp cú pháp này là gì và tài liệu được viết ở đâu?
data(iris)
pairs.panels(iris[1:4],bg=c("red","yellow","blue")[iris$Species],pch=21)
Tôi muốn hỏi về lập luận này, thiết lập màu nền của các vòng tròn vẽ cho các điểm dữ liệu: bg=c("red","yellow","blue")[iris$Species]
Rõ ràng, lập luận này cộng 3 cấp độ của iris$Species
, một yếu tố, với 3 màu được đưa ra. Tôi không hỏi về nó.
Tôi tự hỏi cách thức kết hợp các đối số được truyền với các mức dữ liệu trên bay được gọi là gì và nó được ghi chép ở đâu? Nó có vẻ như một số ma thuật R
. Nếu tôi đã viết chức năng này, tôi có khả năng sẽ chuyển màu và tên cột của yếu tố một cách riêng biệt và sau đó tạo liên kết theo cách thủ công đằng sau hậu trường. Thủ thuật này có thể rất hữu ích. Nhưng trên mặt của nó [iris$Species]
trông giống như dữ liệu được lập chỉ mục chính nó. Bạn không thể gõ [iris$Species]
trong giao diện điều khiển ví dụ, nó chỉ đưa ra một lỗi. Bạn có thể nhập c("red","yellow","blue")[iris$Species]
và nhận câu trả lời đúng. Có vẻ như có một số tái chế đang diễn ra, nhưng tôi không chắc. Tôi muốn tò mò về nơi mà tài liệu này được ghi lại, và nếu bất cứ ai có thể giải thích những gì đang xảy ra trong một hoặc hai câu ngắn. Ví dụ: [iris$Species]
được chuyển đổi thành số nguyên, sau đó được sử dụng để lập chỉ mục danh sách 3 màu? Tôi nghĩ đó là nó, nhưng tôi muốn một ý kiến khác.
Lưu ý: mẹo tương tự được sử dụng trong graphics::pairs
trên đó panels.pairs
được dựa trên.
Nguồn C cho điều này "lừa" có thể được tìm thấy ở đây: https://github.com/wch/r-source/blob/trunk/src/main/subset.c –
Cảm ơn Ferdinand . –