result_create(conn@ptr, оператор): слишком большой результат
t1_DA <- sqldf("select decile,
count(decile) as count, avg(pred_spent) as avg_pred_spent,
avg(exp(total_spent)) as avg_total_spent,
avg(log(pred_spent)) as ln_avg_pred_spent,
avg(total_spent) as ln_avg_total_spent
from t1
group by decile
order by decile desc")
Я делаю линейную регрессию на файл, и когда я запускаю эту часть кода, я получаю следующую ошибку
Ошибка в result_create(conn@ptr, оператор): слишком большой результат
Есть ли способ преодолеть эту ошибку?
1 ответ
Как уже упоминалось, по умолчанию sqldf
использует диалект SQLite, который не поддерживает обширные математические и статистические функции, такие как exp
а также log
, По общему признанию, лучше поднятое сообщение может помочь пользователям отлаживать, а не слишком большой Результат (возможно, проблема с git для автора, @ggrothendieck?).
Однако, чтобы интегрировать эти выходные данные в ваш сводный запрос, рассмотрите возможность создания этих столбцов перед запуском в sqldf. Используйте либо transform
или же within
для простого назначения нового столбца без постоянной ссылки на фрейм данных с помощью $
подход присваивания.
t1 <- transform(t1, exp_total_spent = exp(total_spent),
log_pred_spent = log10(log_pred_spent)
)
# ALTERNATIVE
t1 <- within(t1, {exp_total_spent <- exp(total_spent)
log_pred_spent <- log10(log_pred_spent)
})
t1_DA <- sqldf("select decile,
count(decile) as count,
avg(pred_spent) as avg_pred_spent,
avg(exp_total_spent) as avg_total_spent,
avg(log_pred_spent) as ln_avg_pred_spent,
avg(total_spent) as ln_avg_total_spent
from t1
group by decile
order by decile desc")