Hành vi mặc định trong R để giảm ma trận 2 chiều thành 1 hàng là thực sự thả thứ nguyên. Điều này có thể được "cố định" bằng cách đặt drop = FALSE vào cuối tìm kiếm ma trận. Có cách nào để đặt giá trị này làm mặc định không? Tôi có một chương trình khá dài và chỉ nhận ra rằng tôi sẽ phải thêm điều này vào khoảng 100 địa điểm nếu không có ... Tôi đã tìm kiếm? Tùy chọn,? '[', Và? Ma trận không có kết quả.thay thế để thả = FALSE hoặc thay đổi hành vi mặc định
5
A
Trả lời
5
Bạn có thể xác định lại `[`
như thế này:
old <- `[`
`[` <- function(...) { old(..., drop=FALSE) }
sửa đổi này cần được địa phương với phạm vi tương tác và do đó không ảnh hưởng đến thói quen mà dựa vào các hành vi khác. Không có bảo đảm, mặc dù. Và được chuẩn bị mã của mẫu này sẽ có khả năng gây nhầm lẫn cho người đọc mã của bạn, những người quen với các ngữ nghĩa khác.
Có lẽ bạn có thể thực hiện thay đổi này cục bộ thành một hàm cụ thể, thay vì tất cả mã của bạn?
Một giải pháp thay thế sẽ là viết lớp của riêng bạn cho các đối tượng ma trận, mà bạn có thể cung cấp việc triển khai toán tử con của riêng bạn. Điều này có ý nghĩa nếu bạn xây dựng ma trận ở một số địa điểm rất hạn chế, nhưng có thể là một vấn đề nếu có một số lượng lớn các đường dẫn mã xây dựng các ma trận này.
Các vấn đề liên quan
- 1. django hành vi thay đổi mẫu để silent_variable_failure = False
- 2. Làm cách nào để thay đổi hành vi bộ nhớ cache trên đĩa mặc định?
- 3. Làm thế nào để thay đổi hành vi của cuống?
- 4. Thay đổi hành vi quấn dòng
- 5. Thay đổi hành vi Session.delete() của SQLAlchemy
- 6. Vim: thay đổi hành vi nhấp chuột
- 7. Android: thay đổi mặc định Home Application
- 8. thay đổi url mặc định phpmyadmin
- 9. Thay đổi định dạng in nổi mặc định
- 10. thay đổi mặc định Giá trị Boolean
- 11. Có cách nào để thay đổi toàn cầu các hành vi mặc định của các ràng buộc trong wpf không?
- 12. Thay đổi Cổng RMI Mặc định (Java)
- 13. Loại đầu vào HTML5 = hành vi bước thay đổi số
- 14. TSQL để trở NO hoặc YES thay TRUE hoặc FALSE
- 15. Thay đổi Gistub Mặc định Gist Styles
- 16. Thay đổi mặc định của một Plugin
- 17. Làm thế nào để thay đổi hành vi form_row trong Symfony 2/cành
- 18. Thay đổi tên tuyến mặc định
- 19. Android: Cách thay đổi mức ghi mặc định?
- 20. Thay đổi tiêu đề UIButton thành mặc định
- 21. Thay đổi phông chữ JLabel mặc định
- 22. thay đổi tab mặc định trong snipMate
- 23. Thay thế phân bổ STL mặc định
- 24. Điều gì có thể thay đổi hành vi thay thế lệnh trong bash?
- 25. Thay đổi trang mặc định trong yii
- 26. Thay đổi biểu tượng mặc định
- 27. Không thể thay đổi mặc định RVM
- 28. Làm thế nào để thay đổi tính thẩm mỹ mặc định trong ggplot?
- 29. Ghi đè hành vi mặc định của TAB trong JTextPane
- 30. Đặt AutoEventWireup = "false" theo mặc định
Viết tập lệnh Perl hoặc shell trên mã của bạn để thực hiện các thay thế. OK, có thể không dễ định nghĩa nhưng đáng để quay. – igelkott
Tôi tin rằng có nhiều hack (over-riding '[', vv), nhưng nói chung tôi nghĩ rằng không có cách nào để thay đổi hành vi đó trên toàn cầu. Tùy chọn tốt nhất có thể rất tốt là cập nhật mã của bạn. – joran
nhờ ai đã liên kết câu hỏi được hỏi trước đó, điều đó thật hoàn hảo. – hedgedandlevered