RODBC: столбцы и значения не совпадают - PullRequest
0 голосов
/ 30 мая 2018

Я сталкивался с таким поведением в RODBC (используя драйвер SQL Server):

df1 = data.frame(matrix(c(1:20), nrow=10))
df1

, который выводит

   X1 X2
1   1 11
2   2 12
3   3 13
4   4 14
5   5 15
6   6 16
7   7 17
8   8 18
9   9 19
10 10 20

, что имеет смысл.Затем я сохраняю таблицу, используя RODBC

sqlSave(conout, df1, 'TEST')

Затем я переключаю два созданных столбца:

df2 = df1[,c(2,1)]
df2

, который выводит

   X2 X1
1  11  1
2  12  2
3  13  3
4  14  4
5  15  5
6  16  6
7  17  7
8  18  8
9  19  9
10 20 10

, что также имеет смысл.

Видя эти две таблицы, я вижу, что X1 содержит только 1:10, а X2 содержит только 11:20.Теперь, когда я делаю

sqlSave(conout, df2, 'TEST', append=TRUE, fast=FALSE)
sqlQuery(conout, 'SELECT * FROM TEST')

   rownames X1 X2
1         1  1 11
2         2  2 12
3         3  3 13
4         4  4 14
5         5  5 15
6         6  6 16
7         7  7 17
8         8  8 18
9         9  9 19
10       10 10 20
11        1 11  1
12        2 12  2
13        3 13  3
14        4 14  4
15        5 15  5
16        6 16  6
17        7 17  7
18        8 18  8
19        9 19  9
20       10 20 10

, это определенно не то, что я сохранил.Теперь три вопроса:

  1. Как это возможно?
  2. Где это поведение объясняется в руководстве по RODBC?
  3. Как я могу предотвратить поведение, не переупорядочивая мои столбцы(реальный случай за этим примером имеет> 300 столбцов).
...