您的位置:首页 > 其它

R语言-读取前n行数据

2016-03-10 17:02 162 查看
通常我们读取文件时都会读取全部的文件然后再进行操作,但是当读取的数据量很大是读取的时间会很长,而且占用RAM,对于写测试代码有点不方便。所以只读取前n行数据是一个挺不错的函数。

##file:读取文件路径
##n:读取的前n行
##header:是否有标题行
readfile<-function(file, n=1000, header=T){
pt <- file(file, "r")
name <- NULL
if(header){
name <- strsplit(readLines(pt, 1), split=',')[[1]];  #读取标题
f1 <- readLines(pt, n)
data <- read.table(text=f1, sep=',', col.names=name)
}else{
data <- read.table(text=f1, sep=',')
}
close(pt)
data
}


测试,最近制作linux启动盘误将移动硬盘当U盘,要死要死的,近500G资料丢失,因为制成启动盘所以资料还找不回来。所以没有大型数据做测试。之前200M的文件本人电脑上读取前10000行也是秒读的。

(data <- readfile(file="mtcars.csv", n=5, header=T))
X..        X.mpg. X.cyl. X.disp. X.hp. X.drat.  X.wt.
1       Mazda RX4   21.0    6   160     110    3.90   2.620
2   Mazda RX4 Wag   21.0    6   160     110    3.90   2.875
3      Datsun 710   22.8    4   108      93    3.85   2.320
4  Hornet 4 Drive   21.4    6   258     110    3.08   3.215

class(data)
[1] "data.frame"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: