【发布时间】:2015-08-18 12:16:24
【问题描述】:
软件:R Studio
版本:0.98.1102
操作系统:Windows 7 专业版
问题 #1:我有一个 100MB 以上的 .txt 文件。它有 4 个变量,每个变量有超过 500,000 个观察值。
问题 #2:假设 column1 是一个包含日期因素的列。是否可以使用 read.csv() 的 colClasses 参数将仅 column1 的类更改为日期类?
如果我通过以下方式读取文件:
mydata <- read.csv("myfile", sep = ";", na.strings = "?", stringsAsFactors = FALSE)
问题 #1
由于文件的大小,该文件会无限期地加载到我的计算机上。
文件格式
column1
狗 鸟 苹果
猫 鸽子 橙色
大鼠 麻雀 猕猴桃
可能 鸟 苹果
猫 鸽子 橙色
老鼠 麻雀 猕猴桃
我正在尝试弄清楚如何执行以下操作:
1. 只读取数据集中第 1 列有“dog”的行
2. 只读数据集中第1列有狗,第2列有鸟的行
到目前为止我一直在尝试的事情 1. 我读到我可以加载整个数据然后对其进行子集化,但我真的想避免这种情况。原因是文件太大而最初无法加载。相反,我想只加载基于标准的特定数据
问题 #2
假设 column1 的形式为 05/01/2015,但具有“因子”类。是否可以使用 read.csv 的 colClasses 参数将仅列 1 的类更改为类“日期”?也许是这样的?
mydata <- read.csv("myfile", sep = ";", na.strings = "?",
stringsAsFactors = FALSE, colClasses = c(column1 =as.date(column1))
或者可能是这样的
mydata <- read.csv("myfile", sep = ";", na.strings = "?",
stringsAsFactors = FALSE, colClasses = c(column1 =strptime(column1 %MM%DD%YY))
【问题讨论】:
-
您应该提供 R 的版本,而不是 RStudio 的版本。
-
不完全是您想要的,但来自
readr包的read_csv比read.csv快很多(~10 倍),当然来自data.table的fread甚至更快(~2x)。
标签: r