Цель: переместить файл csv в базу данных sqlite, проходящую через R (я не могу избежать прохождения через R), и выполнить некоторые запросы к базе данных Sqlite из R.
Проблема: Когда я выполняю простуюзапрос к базе данных sqlite (сумма столбца), и я делаю тот же расчет в R, суммируя столбец фрейма данных (те же данные, что и в базе данных sqlite), я получаю два совершенно разных результата.
Пока я не знаю, кому я должен доверять.Обратите внимание, что я не могу открыть файл CSV в Excel для проверки вручную, так как файл очень большой.
Я уже пытался изменить тип столбца при перемещении файла CSV в базу данных sqlite.До сих пор я пробовал: целое, числовое, двойное, вещественное.
library(RSQLite)
con <- dbConnect(SQLite(), "data/table.sqlite")
q1 <- "
SELECT
sum(table.values)
FROM
table;
"
t1 <- dbGetQuery(con, q1)
t1
# Sum the same column from the data frame within R
s1 <- sum(table$values)
В этом случае я сравниваю t1 (сумма столбца «values» с SQLite) с sq (сумма столбца «values» с R), и они не совпадают.Ошибка очень большая.Не только десятичные дроби ... Я получаю разницу в миллионы ... (я работаю над очень большим файлом).
Я также проверил, равен ли столбец моего кадра данных в R i столбцу в базе данных SQLite, и они равны!
q2 <- "
SELECT
table.values
FROM
table;
"
t2 <- dbGetQuery(con, q2)
t2
sum(t2$values == table$values)
Последняя строка кода дает мне 3000000, что означает, чтовсе элементы равны, так как и моя база данных, и база данных sqlite имеют 3000000 строк.
Я просто хотел бы знать, как я могу получить один и тот же результат из базы данных R и Sqlite.
Я что-то упускаю из-за типов значений в базе данных Sqlite?
Операционная система: Mac OS Mojave 10.14.1 R версия 3.5.2 (2018-12-20) SQLite 3
Заранее благодарим за вашу супер драгоценную помощь!