我有一个 CSV 文件,有 600,000 行和 1339 列,共 1.6 GB。1337 列是采用 1 或 0 值的二进制文件,其他 2 列是数字和字符变量。
我使用带有以下代码的包 readr 提取数据
VLU_All_Before_Wide <- read_csv("C:/Users/petas/Desktop/VLU_All_Before_Wide_Sample.csv")
Run Code Online (Sandbox Code Playgroud)
当我使用以下代码检查对象大小时,它约为 3 GB。
> print(object.size(VLU_All_Before_Wide),units="Gb")
3.2 Gb
Run Code Online (Sandbox Code Playgroud)
在下一步中,我想使用下面的代码为 LASSO 回归创建训练和测试集。
set.seed(1234)
train_rows <- sample(1:nrow(VLU_All_Before_Wide), .7*nrow(VLU_All_Before_Wide))
train_set <- VLU_All_Before_Wide[train_rows,]
test_set <- VLU_All_Before_Wide[-train_rows,]
yall_tra <- data.matrix(subset(train_set, select=VLU_Incidence))
xall_tra <- data.matrix(subset(train_set, select=-c(VLU_Incidence,Replicate)))
yall_tes <- data.matrix(subset(test_set, select=VLU_Incidence))
xall_tes <- data.matrix(subset(test_set, select=-c(VLU_Incidence,Replicate)))
Run Code Online (Sandbox Code Playgroud)
当我开始 R 会话时,RAM 约为 3 GB,当我执行上述所有代码时,RAM 现在为 14 GB,留下一个错误,提示无法分配大小为 4 GB 的向量。除了 3 个 Chrome 窗口之外,没有其他应用程序在运行。我删除了原始数据集、训练和测试数据集,但它仅将 RAM 减少了 0.7 至 1 GB。
rm(VLU_All_Before_Wide)
rm(test_set)
rm(train_set)
Run Code Online (Sandbox Code Playgroud)
如果有人可以指导我减少数据大小的方法,我将不胜感激。
谢谢