提取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.但它似乎有點笨拙。
3 回答

慕蓋茨4494581
TA貢獻1850條經驗 獲得超11個贊
使用dplyr 0.7.0,您可以使用pull從a獲取向量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"

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
您還可以使用unlist
我發現更容易閱讀的內容,因為您不需要重復列的名稱或指定索引。
iris2 %>% select(Species) %>% unlist(use.names = FALSE)
- 3 回答
- 0 關注
- 694 瀏覽
添加回答
舉報
0/150
提交
取消