如何在R中读取大型数据集

22 浏览
0 Comments

如何在R中读取大型数据集

这个问题已经有了答案:

可能是重复的问题:

如何在R中快速读取非常大的表格作为数据框?

您好,

尝试在R中读取大型数据集时,控制台显示以下错误:

data<-read.csv("UserDailyStats.csv", sep=",", header=T, na.strings="-", stringsAsFactors=FALSE) > data = data[complete.cases(data),]
> dataset<-data.frame(user_id=as.character(data[,1]),event_date= as.character(data[,2]),day_of_week=as.factor(data[,3]),distinct_events_a_count=as.numeric(as.character(data[,4])),total_events_a_count=as.numeric(as.character(data[,5])),events_a_duration=as.numeric(as.character(data[,6])),distinct_events_b_count=as.numeric(as.character(data[,7])),total_events_b=as.numeric(as.character(data[,8])),events_b_duration= as.numeric(as.character(data[,9])))
Error: cannot allocate vector of size 94.3 Mb
In addition: Warning messages:
1: In data.frame(user_msisdn = as.character(data[, 1]), calls_date = as.character(data[,  :
  NAs introduced by coercion
2: In data.frame(user_msisdn = as.character(data[, 1]), calls_date = as.character(data[,  :
  NAs introduced by coercion
3: In class(value) <- "data.frame" :
  Reached total allocation of 3583Mb: see help(memory.size)
4: In class(value) <- "data.frame" :
  Reached total allocation of 3583Mb: see help(memory.size)

有人知道如何读取大型数据集吗? UserDailyStats.csv的大小约为2GB。

admin 更改状态以发布 2023年5月22日
0
0 Comments

您可以在read.csv调用中使用colClasses指定数据类型。

data<-read.csv("UserDailyStats.csv", sep=",", header=T, na.strings="-", stringsAsFactors=FALSE, colClasses=c("character","character","factor",rep("numeric",6)))

尽管对于这样大小的数据集,仍然可能会有问题,并且用于做任何分析的内存空间不足。增加RAM并使用64位计算会提供更多的灵活性。

0
0 Comments

当然:

  1. 获取一个更大的计算机, 特别是更多的内存
  2. 运行64位操作系统, 参见第1点关于现在可以使用更多内存的问题
  3. 只读取需要的列
  4. 读取更少的行
  5. 以二进制方式读取数据, 而不是重新解析2GB (这非常低效)。

这里还有一个手册, 可以在R网站上找到。

0