Theo nhận xét từ @nacnudus, có vẻ như một pull
chức năng đã được triển khai trong dplyr 0.6:
iris2 %>% pull(Species)
Đối với các phiên bản cũ hơn của dplyr, đây là một chức năng gọn gàng để giúp kéo ra một cột đẹp hơn một chút (dễ gõ hơn và dễ đọc hơn):
pull <- function(x,y) {x[,if(is.name(substitute(y))) deparse(substitute(y)) else y, drop = FALSE][[1]]}
Điều này cho phép bạn thực hiện một trong những điều sau:
iris2 %>% pull('Species')
iris2 %>% pull(Species)
iris2 %>% pull(5)
Kết quả là ...
[1] 21.0 21.0 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 17.8 16.4 17.3 15.2 10.4 10.4 14.7 32.4 30.4 33.9 21.5 15.5 15.2 13.3 19.2 27.3 26.0 30.4 15.8 19.7 15.0 21.4
Và nó cũng hoạt động tốt với các khung dữ liệu:
> mtcars %>% pull(5)
[1] 3.90 3.90 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 3.92 3.07 3.07 3.07 2.93 3.00 3.23 4.08 4.93 4.22 3.70 2.76 3.15 3.73 3.08 4.08 4.43
[28] 3.77 4.22 3.62 3.54 4.11
Một cách hay để làm điều này trong v0.2 của dplyr
:
iris2 %>% select(Species) %>% collect %>% .[[5]]
Hoặc nếu bạn thích:
iris2 %>% select(Species) %>% collect %>% .[["Species"]]
Hoặc nếu bàn của bạn không quá lớn, chỉ cần ...
iris2 %>% collect %>% .[["Species"]]
collect(iris2)$Species
ít vụng về?