Выдвиньте фрейм данных R в SQL как новую таблицу - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь сделать мой рабочий процесс анализа более эффективным, подключив мою базу данных SQL Server к R-Studio.

Что я делаю сейчас?

  1. Я разрабатываю свои запросы с использованием MS SQL Management Studio для извлечения соответствующей информации для анализа.
  2. Я экспортирую результат запроса в файл .csv UTF-8.
  3. Iпрочитайте файл в R-Studio и выполните анализ.
  4. Я экспортирую окончательный кадр данных в файл .csv UTF-8.
  5. Я использую этот файл для создания таблицы обратно в SQL Management Studio.

Что я пытаюсь сделать?

Я хочу создать соединение между SQL Server и R-Studio, чтобы я мог напрямую импортировать / экспортировать свойdataframe / table без этих файлов на моем компьютере.

Для этого я выполнил следующие действия:

  1. Установленные пакеты DBI и odbc в R.
  2. Настроеносоединение с использованием «Администратор соединения с источником данных ODBC»
    • Мое соединение называется «Ruterprise "(собственный клиент SQL Server 10.0)
  3. В R-Studio, используя вкладку Соединение, я вижу список источников данных, содержащих« Предприятие ».
    • При выборе источника данных «Enterprise» создайте объект R с именем «con», который содержит информацию о соединении.
    • На данный момент я вижу все базы данных на вкладке соединения.
  4. Мой код для тестирования в R следующий:
---
title: "R Notebook"
output: html_notebook
---
```{r setup, include=FALSE}
library(odbc)
con <- dbConnect(odbc::odbc(), "Enterprise", timeout = 10) ```

```{sql, connection = con, output.var = "DataFrame"}
SELECT TOP 1000 *
FROM [DB].[dbo].[Table] ```

Data<-DataFrame[1:100,1:10]
head(Data,11)```

Var1    Var2    Var3    Var4    Var5    Var6    Var7    Var8    Var9    Var10
   A       1    2.4      5.5    13.1    30.8    72.4    170.5   401.6   945.7
   B       2    4.7     11.1    26.1    61.5    144.8   341.1   803.2   1891.5
   C       3    7.1     16.6    39.2    92.3    217.3   511.6   1204.8  2837.2
   D       4    9.4     22.2    52.2    123.0   289.7   682.2   1606.4  3782.9
   E       5    11.8    27.7    65.3    153.8   362.1   852.7   2008.0  4728.6
   F       6    14.1    33.3    78.4    184.5   434.5   1023.2  2409.6  5674.4
   G       7    16.5    38.8    91.4    215.3   506.9   1193.8  2811.2  6620.1
   H       8    18.8    44.4    104.5   246.0   579.4   1364.3  3212.8  7565.8
   I       9    21.2    49.9    117.5   276.8   651.8   1534.9  3614.4  8511.5
   J       10   23.5    55.5    130.6   307.5   724.2   1705.4  4016.0  9457.3
   K       11   25.9    61.0    143.6   338.3   796.6   1875.9  4417.6  10403.0
```{sql, connection = con}
SELECT * INTO [DB].[dbo].[New_Table]
FROM ?Data```

Здесь я использую ?, чтобы указать, что «Данные» - это объект dataframe R в блоке SQL.

Error in vapply(values, function(x) { : values must be length 1,
 but FUN(X[[1]]) result is length 100
Failed to execute SQL chunk

Я предполагаю, что в последнем блоке я что-то не так делаю.

Каким будет правильный способ отправить «Данные» в мою базу данных?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...