是否有一种更简洁的方法可以从具有数据库后端的 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.
但是看起来有点笨拙。
最佳答案
当 dplyr >= 0.7.0 时,您可以使用 pull()
从 tbl
获取向量。
library(dplyr, warn.conflicts = FALSE)
db <- src_sqlite(tempfile(), create = TRUE)
iris2 <- copy_to(db, iris)
vec <- pull(iris2, Species)
head(vec)
#> [1] "setosa" "setosa" "setosa" "setosa" "setosa" "setosa"
关于r - 将 dplyr tbl 列提取为向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21618423/