我有一个大的txt文件(大约2 mil行)。第一列是格式01/01/2006的日期。 值用;
分隔data <- read.table("largeFile.txt", sep=";")
dataToUse <- data[data$Date >= 01/02/2007 && data$Date <= 02/02/2007,]
示例行:
16/12/2006;17:36:00;5.224;0.478;232.990;22.400;0.000;1.000;16.000
上面的代码也不起作用,但有没有办法首先进行子集化,然后将数据加载到数据变量中?由于文件很大,加载它需要一些时间吗?
答案 0 :(得分:2)
要使子集起作用,您需要引号和少一个&符号。
dataToUse <- data[data$Date >= "01/02/2007" & data$Date <= "02/02/2007", ]
您也可以使用subset()
功能。
subset(data, Date >= "01/02/2007" & Date <= "02/02/2007")
接下来,如果date列应该是Date类变量,则可以在colClasses
中使用参数read.table()
设置其类。如果您愿意,可以通过这种方式设置所有列类,或者只使用一次。在将colClasses
用于日期类变量之前,请确保您的日期格式正确。
最后,要在将数据读入R之前对数据进行子集化,我建议在终端或shell中使用shell / unix命令。 grep
,awk
,sed
等功能可以轻松快捷地将数据发送到R之前。在Windows上,我建议您下载Cygwin(它是免费的,快速的) ,显然只是基于linux的机器中的终端。