提取dplyr tbl列作为向量

提取dplyr tbl列作为向量

是否有更简洁的方法将dplyr tbl的一列作为向量,从具有数据库后端的tbl(即数据帧/表不能直接是子集)?

require(dplyr)db <- src_sqlite(tempfile(), create = TRUE)iris2 <- copy_to(db, iris)iris2$Species# NULL

这太容易了,所以

collect(select(iris2, Species))[, 1]# [1] "setosa"     "setosa"     "setosa"     "setosa"  etc.

但它似乎有点笨拙。


撒科打诨
浏览 651回答 3
3回答

慕盖茨4494581

使用dplyr 0.7.0,您可以使用pull从a获取向量tbl。library("dplyr")#>&nbsp;#> Attaching package: 'dplyr'#> The following objects are masked from 'package:stats':#>&nbsp;#>&nbsp; &nbsp; &nbsp;filter, lag#> The following objects are masked from 'package:base':#>&nbsp;#>&nbsp; &nbsp; &nbsp;intersect, setdiff, setequal, uniondb <- src_sqlite(tempfile(), create = TRUE)iris2 <- copy_to(db, iris)vec <- pull(iris2, Species)head(vec)#> [1] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"

犯罪嫌疑人X

您还可以使用unlist我发现更容易阅读的内容,因为您不需要重复列的名称或指定索引。iris2&nbsp;%>%&nbsp;select(Species)&nbsp;%>%&nbsp;unlist(use.names&nbsp;=&nbsp;FALSE)
打开App,查看更多内容
随时随地看视频慕课网APP