软件:R Studio
版本:0.98.1102
操作系统:Windows 7专业版
问题#1:我的.txt文件是100MB +。它有4个变量,每个变量有500,000多个观测值。
问题#2:假设column1是一个日期为因子的列。是否可以使用read.csv()的colClasses参数将column1的类更改为日期类?
如果我通过以下方式读取文件:
mydata <- read.csv("myfile", sep = ";", na.strings = "?", stringsAsFactors = FALSE)
问题#1
由于文件的大小,文件无限期地加载到我的计算机上。
该文件的格式为
column1 column2 column3
狗鸟苹果
猫鸽子橙色
大鼠麻雀猕猴桃
可鸟苹果
猫鸽子橙色
大鼠麻雀猕猴桃
我正在试图弄清楚如何做到以下几点:
1.只读取第1列中有“dog”的数据集中的行
2.只读数据集的行,其中第1列有狗,第2列有鸟
到目前为止我一直在尝试的事情 1.我读到我可以加载整个数据然后将其子集化,但我真的想避免这种情况。原因是文件太大而无法最初加载。相反,我想只根据标准加载特定数据
问题#2
假设column1的形式为05/01/2015,但其类别为“factor”。是否可以使用read.csv的colClasses参数将第1列的类更改为类“date”?也许是这样的?
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))
答案 0 :(得分:1)
您可以将数据读入数据块,一次说1000行,然后将它们分组。
temp <- read.csv('file.csv', nrows=1000, stringsAsFactors=FALSE)
但在R中使用for循环并不总是一个好主意。所以,我更喜欢使用sqldf
library(sqldf)
power <- read.csv.sql("file.csv", sql = "select * from file where codition ",
header = TRUE)
在此问题中查看有关如何执行此操作的更多选项 How do i read only lines that fulfil a condition from a csv into R
答案 1 :(得分:0)
希望对你有所帮助。