如何从 tbl_dbi 获取字段名称?

sin*_*eso 5 r dbplyr

有没有办法直接从tbl_dbi对象中获取字段名称(db_mtcars如下)?

 library(RSQLite)
 library(dbplyr)
 library(dplyr)
 con <- dbConnect(RSQLite::SQLite(), ":memory:")
 dbWriteTable(con, "mtcars", mtcars)

 db_mtcars <- tbl(con, "mtcars")
Run Code Online (Sandbox Code Playgroud)

sin*_*eso 11

是的,与colnames()

> colnames(db_mtcars)
 [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
[11] "carb"
Run Code Online (Sandbox Code Playgroud)

  • 知道为什么吗?为什么这在 `names()` 失败的地方有效。colnames 的底层函数 `dimnames()` 和 `names()` 都是原语......所以看起来不像有一些 S3 调度正在进行。 (2认同)