【发布时间】:2018-12-14 22:37:09
【问题描述】:
我正在尝试将一个包含大文件(总共 3500 万行)的文件夹加载到 R 中,并将其作为数据框。
我已经设法加载数据,尽管使用下面的代码确实需要 10/15 分钟,但是问题是 csv 中的所有列都变成了 1 列。这是我的代码:
# Load files
temp = list.files(path ="D:/", pattern="*.csv", full.names = TRUE)
myfiles = lapply(temp, read.delim)
# Make Dataframe
df_list = lapply(seq(length(myfiles)),function(i){
df = as.data.frame(myfiles[i], stringsAsFactors = FALSE)
})
head(do.call(bind_rows,df_list))
df = as.data.frame(data.table::rbindlist(df_list, use.names=TRUE, fill=TRUE))
csv 的列可能如下所示:
|A|B|C|D1|E|
但是在我的数据框中输出如下:
|A.B.C.D1..E|
如有任何解决此维护列问题的帮助,我们将不胜感激。
【问题讨论】:
-
您使用的是
read.delim,但如果是csv,则需要设置sep=","(ps 看看fread) -
重新编辑:如果分隔符是
|,那么您需要相应地设置它。 -
谢谢,这两种解决方案都有效,但是 fread 是如前所述,速度稍快。
标签: r csv dataframe large-data