我想从一个大型 postgresql 表中导入数据。为了节省空间,我想自动将文本值转换为因子。
例如,数据集有许多字符串变量,例如(例如,“男性”、“女性”),如果这些变量可以作为因子导入,我就可以使用如下命令加载数据集,
df <- dbGetQuery(con, "select id, gender from large.table"))
而不是接收像 (#, "Male") 这样的行,我想要像 (#, 0) 这样的行,这样我就可以节省内存。
如果您在您选择的数据库上尝试以下查询并让“性别”列等于字符列,您应该会看到 df_large 的大小要大得多。
df <- dbGetQuery(con, "select id, gender from large.table"))
df_large <- df$gender
print(object.size(df_large), units="Kb")
df_small <- factor(df$gender)
print(object.size(df_small), units="Kb")