【发布时间】:2018-02-01 15:59:32
【问题描述】:
当我通过调用 df <- read.table("ModelSugar(new) real_thesis_experiment-table_1.csv", skip = 6, sep = ",", head = TRUE) 导入带有 read.table 的 .csv 文件并检查我得到的数据的摘要时(仅显示 45 列的前 3 列):
X.run.number. scenario configuration
Min. : 1 "pessimistic":999994 "central":999994
1st Qu.: 650
Median :1299
Mean :1299
3rd Qu.:1949
Max. :2600
有了这个数据框,我可以制作漂亮的图形。但是,我有 80 个 .csv 文件,总大小为 40 GB,所以我只想导入特定的列。
我认为使用fread(来自 data.table 包)会更容易。所以我导入了 5 列并通过调用将它们合并到一个数据帧中
my.files <- list.files(pattern=".csv")
my.data <- lapply(my.files,fread, header = FALSE, select = c(1,2,3,25,29), sep=",")
df <- do.call("rbind", my.data)
该数据框的摘要看起来像(显示了 5 列中的 4 列:
[run number] scenario configuration [step]
Length:999994 Length:999994 Length:999994 Length:999994
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
使用此数据框,我无法制作使用 read.table 可以制作的图形。我猜这与列值的类别有关。
如何确保使用 fread 创建的数据框与使用 read.table 创建的数据框具有相同的特征,以便制作我想要的图形?
编辑
我发现当我第一次将 excel 中的 .csv 拆分为列,然后将 fread 调用与 sep = ";" 一起使用时而不是 sep = ",",它确实有效。奇怪...而且我不想手动将 .csv 文件转换为 excel 中的列。
【问题讨论】:
-
你在说什么
fread?包裹data.table?您能否也将电话分享给fread和read.table? -
@Marijn ...请使用电话编辑您的帖子,然后删除这些 cmets。
标签: r import read.table