dplyr :: tbl возвращает список вместо таблицы - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь использовать dplyr в RStudio для манипулирования таблицами в базе данных MS SQL Server.Я успешно подключился к базе данных, используя DBI, ODBC.

Код:

library(DBI)
library(odbc)
library(dplyr)
library(dbplyr)
con <- dbConnect(odbc(), 
                 Driver = "SQL Server",
                 Server = "myserver",
                 database = "ABC",
                 UID = "sqladmin",
                 PWD = "pwd",
                 port = '14333')

data <- tbl(con, "abc")

abc - таблица в базе данных ABC .Соединение установлено успешно (я могу просмотреть таблицы и поля), но dplyr :: tbl возвращает список 2 вместо того, чтобы возвращать таблицу abc .Так что data - это список вместо таблицы.Где я ошибаюсь в этом коде?

Схема ABC -> dbo -> abc

image of data object

1 Ответ

1 голос
/ 25 сентября 2019

Код работает как положено.То, что вы видите, является просто ограничением отображения типа в инспекторе данных RStudio: фактический тип, возвращаемый tbl, является объектом класса S3 tbl_SQLiteConnection, но он реализован как вложенный list (аналогично тому, какdata.frame s реализованы в виде списков столбцов).

Вы сможете работать с data, как и ожидалось.Вы также можете вызвать as_tibble(data), чтобы получить правильный назад… , но вам не нужно делать это , чтобы работать с ним!

...