Kể từ khi giới thiệu toán tử %>%
trong gói magrittr
(và nó được sử dụng trong dplyr
), tôi đã bắt đầu sử dụng điều này trong công việc của riêng tôi.Làm thế nào để trích xuất/tập hợp một phần tử từ một danh sách với đường dẫn% magrittr%?
Tuy nhiên, một hoạt động đơn giản đã khiến tôi bối rối. Cụ thể, đây là trích xuất (hoặc subsetting) của các yếu tố từ một danh sách.
Một ví dụ: Trong cơ sở RI sẽ sử dụng $
, [
hoặc [[
để trích xuất một phần tử từ một danh sách:
iris$Species
iris[["Species"]]
tôi có thể đạt được như vậy bằng cách sử dụng %>%
ống:
iris %>%
subset(select = "Species") %>%
head
Species
1 setosa
2 setosa
3 setosa
4 setosa
5 setosa
6 setosa
Hoặc
iris %>%
`[[`("Species") %>%
levels
[1] "setosa" "versicolor" "virginica"
Tuy nhiên, điều này cảm thấy như một giải pháp lộn xộn, lộn xộn.
Có cách nào thanh lịch, kinh điển hơn để trích xuất phần tử từ danh sách bằng cách sử dụng đường ống %>%
không?
Lưu ý: Tôi không muốn bất kỳ giải pháp nào liên quan đến dplyr
, vì lý do đơn giản là tôi muốn giải pháp làm việc với bất kỳ đối tượng R nào, bao gồm danh sách và ma trận chứ không chỉ khung dữ liệu.
sử dụng use_series, extract2 và trích xuất cho $, [[, [, tương ứng. Để xem danh sách các bí danh, hãy thực thi ví dụ: ? multiply_by. – Bangyou
@Bangyou Thật tuyệt. Tôi không biết điều đó. Bạn có muốn thêm câu trả lời đó làm câu trả lời không? – Andrie
Nhận xét bên: hãy xem 'pipeR', vì nó có các khả năng hơi khác so với 'magrittr' –