在将大的txt文件读入R中的变量之前对其进行子集化[重复]
Posted
技术标签:
【中文标题】在将大的txt文件读入R中的变量之前对其进行子集化[重复]【英文标题】:subsetting a large txt file before reading it into the variable in R [duplicate] 【发布时间】:2014-07-29 01:24:37 【问题描述】:我有一个大的 txt 文件(大约 2 百万行)。第一列是格式为 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
上面的代码也不起作用,但是有没有办法先进行子集化,然后将数据加载到数据变量中?由于文件很大,加载需要一些时间?
【问题讨论】:
首先,学习help("&&")
,了解为什么应该使用&
。然后查看包 data.table 中的fread
函数以加快导入速度。
另外,看看***.com/questions/1727772/…
【参考方案1】:
要使子集起作用,您需要引号和少一个 & 号。
dataToUse <- data[data$Date >= "01/02/2007" & data$Date <= "02/02/2007", ]
您也可以使用subset()
函数。
subset(data, Date >= "01/02/2007" & Date <= "02/02/2007")
接下来,如果日期列应该是一个日期类变量,您可以使用read.table()
中的参数colClasses
设置它的类。如果您愿意,可以通过这种方式设置所有列类,或者只使用一种方式。在将 colClasses
用于日期类变量之前,请确保您的日期格式正确。
最后,为了在将数据读入 R 之前对其进行子集化,我建议在终端或 shell 中使用 shell/unix 命令。 grep
、awk
、sed
等函数可以在将数据发送到 R 之前轻松快速地减少数据。在 Windows 上,我建议您下载 Cygwin(它免费且快速),显然只是终端在基于 linux 的机器中。
【讨论】:
+1 建议使用 grep。以上是关于在将大的txt文件读入R中的变量之前对其进行子集化[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在将 SCNPhysicsVehicleWheels 导入 Xcode 之前对其进行缩放