У меня есть большие таблицы как по длине, так и по ширине для науки о данных. Часто я хочу переместить фрейм данных в таблицу базы данных SQL
. Это означает, что я должен записать каждый тип столбца в моем операторе create
. Когда столбцы растут> 200, это может быть затруднительно.
Это кажется хорошей возможностью для функции. Я думаю, что он сначала проверит типы столбцов во фрейме данных и вернет соответствующие Postgres
типы столбцов, чтобы я мог скопировать и вставить.
R -> Перевод PG12 https://www.postgresql.org/docs/12/datatype-numeric.html
| R class | PG12 datatype | Note |
|--------------|---------------------------|----------------------------------------------------------------------------------------------------------------------|
| factor, char | text | text can handle varying length strings |
| integer | smallint | if abs(x) <= 32767 then smallint |
| integer | integer | if abs(x) <= 2147483647 then integer |
| integer | bigint | if abs(x) <= 9223372036854775807 then bigint |
| numeric | smallint, integer, bigint | if there is nothing in the decimal places `4.0` coerce it to integer to save space |
| numeric | numeric(precision,scale) | precision = nchar(unlist(strsplit(x = as.character(10.045), split = ".", fixed = T))[2]); scale = max(nchar(10.045)) |
| Date | date | |
Например, эта таблица: head(Orange)
даст следующие результаты:
, которые я могу скопировать и вставить в оператор create
:
Существуют ли какие-либо решения для этого, которые люди нашли или Может ли кто-нибудь помочь с логи c для этой функции? Заранее спасибо за любую помощь!