Có cách nào ngắn gọn để chọn các cột thuộc loại nhất định trong dplyr
không? Ví dụ, làm thế nào để chọn tất cả các cột ký tự trong một chuỗi dplyr
?dplyr - cách chọn các cột thuộc loại nhất định
Trả lời
Dplyr 0,5 có select_if()
cho phép bạn viết select_if(is.character)
Điều này làm cho mã sạch hơn nhiều so với sử dụng một áp dụng bên trong chuỗi dplyr! –
Một cách để đi về nó trước hết là lấy các lớp của các cột khác nhau. Vì vậy, giả sử chúng ta có một số dữ liệu:
library(dplyr)
DT <- data.frame(A = letters[1:6], B = c(T,F,F), C = seq(1,2,length.out = 6), D = 1:6)
dt <- tbl_df(DT)
dt$A <- as.character(dt$A)
đầu ra
A B C D
(chr) (lgl) (dbl) (int)
1 a TRUE 1.0 1
2 b FALSE 1.2 2
3 c FALSE 1.4 3
4 d TRUE 1.6 4
5 e FALSE 1.8 5
6 f FALSE 2.0 6
Bây giờ chúng ta có thể có được các lớp học sử dụng mà chức năng:
cls <- sapply(dt, class)
cls
đầu ra
A B C D
"character" "logical" "numeric" "integer"
Bây giờ nó là thẳng chuyển tiếp:
newDF <- dt %>% select(which(cls=="character"))
newDF
đầu ra
A
(chr)
1 a
2 b
3 c
4 d
5 e
6 f
Đẹp - Tôi đang tìm một cách để có thể tránh nhận các lớp bên ngoài chuỗi dplyr. – paljenczy
Bạn có thể làm điều này với
dt %>% select(which(sapply(.,is.character)))
- 1. Chọn các cột dựa trên kết hợp chuỗi - dplyr :: chọn
- 2. dplyr: chọn tên cột chứa khoảng trắng
- 3. chọn các cột dựa trên nhiều chuỗi có dplyr chứa()
- 4. Không thể thả cột - chọn() với dplyr
- 5. loại enable_if không thuộc loại mẫu nhất định
- 6. Cách loại trừ các bản ghi với các giá trị nhất định trong sql chọn
- 7. chọn một số cột nhất định của bảng dữ liệu
- 8. Lựa chọn với dplyr bởi các thông số trong tên cột
- 9. dplyr inner_join bằng NA trên các cột nhân vật
- 10. Tổng trên nhiều cột với dplyr
- 11. SimpleXML: Chọn các phần tử có giá trị thuộc tính nhất định
- 12. dplyr chọn sử dụng lôgic
- 13. xóa các thuộc tính nhất định khỏi các thẻ HTML
- 14. dplyr đột biến max rowwise của hàng loạt các cột
- 15. Cách chọn các hàng có giá trị tối đa trong mỗi nhóm với dplyr?
- 16. xóa cột bị trùng lặp dplyr
- 17. JPA - xác định các ràng buộc duy nhất nhiều cột
- 18. Pandas tính theo nhóm, nhưng loại trừ các cột nhất định
- 19. chuỗi dplyr dưới dạng tham chiếu cột
- 20. Trả lại các cột đã chọn được chỉ định
- 21. Đặt giá trị mặc định của cột dựa trên cột khác thuộc loại dữ liệu khác
- 22. Làm cách nào để quét các cột cụ thể bằng dplyr?
- 23. Cách chọn một cột nhất định từ một dòng văn bản?
- 24. Loại trừ các yếu tố nhất định khỏi lựa chọn trong XPath
- 25. Cách tốt nhất để xác định và truy cập các thuộc tính đã chọn trong C# là gì?
- 26. Chọn toán tử trừ trong nhóm dplyr group_by
- 27. Truy cập vào tất cả các hạt đậu mùa xuân thuộc một loại nhất định
- 28. chọn tất cả các nút xml chứa một thuộc tính nhất định
- 29. Tránh xung đột loại với dplyr :: case_when
- 30. Làm cách nào để chọn các hàng có giá trị cột bắt đầu bằng một chuỗi nhất định?
Không phải là quen thuộc với các gói dplyr. Nhưng bạn có thể làm một cái gì đó như thế này? Tương tự như hàm 'class':' d <- tbl_df (iris); type_sum (d); chọn (d, cái nào (loại_sum (d) == "dbl")) ' – Jimbou