微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

提取 dplyr tbl 列作为向量

如何解决提取 dplyr tbl 列作为向量

使用 dplyr >= 0.7.0,您可以使用pull()tbl.

library("dplyr")
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
db <- src_sqlite(tempfile(), create = TRUE)
iris2 <- copy_to(db, iris)
vec <- pull(iris2, Species)
head(vec)
#> [1] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"

解决方法

有没有更简洁的方法从具有数据库后端的 tbl 中获取 dplyr 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.

但这似乎有点笨拙。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。