对于超大型CSV文件使用R语言读取前n行进行预览以及R语言readLiunes函数读取行数的疑问

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

提示:以下是本篇文章正文内容,下面案例可供参考

一、下载了几个G的CSV不知道里面的数据格式是不是想要的怎么办?

相信很多朋友也遇到类似的问题,想预览一下文件的内容,但是excel加载不出来,quicklook也打不开,用R直接read内存直接占满,也打不开(昨天尝试预览一个3G的CSV,16G内存直接占满,也没成功)

二、实现

1.直接上代码

代码如下(示例):

readfile<-function(filePath, n, header=T){
  temp <- file(filePath, "r")#file是读取文件的操作,不需要多说
  name <- NULL
  if(header){
    names <- strsplit(readLines(temp, 1), split=',')[[1]];  #读取标题
    f <- readLines(temp, n)
    data <- read.table(text=f, sep=',', col.names=names)#将读取的标题设置为每一列的列名
  }else{
    data <- read.table(text=f, sep=',')
  }
  close(pt)
  data 
}

2.一些思考和记录

相信仔细的朋友已经发现一个小问题了,我们目的是读取n行数据,但是上来就readLinesn,这样去掉第一行的列明,不就相当于读取了n-1行的数据了吗?

f <- readLines(temp, n)

并不是这样的,这里我们需要注意,readLines(text,1),这个函数执行后,行标会自动的移动到下一行,有点像C语言中的一些操作。也就是说当我们读取行名后

names <- strsplit(readLines(temp, 1), split=',')[[1]]

第一行变成了行名后的一行,也就是实际数据的第一行,这时候再

f <- readLines(temp, n)

是完全ok的


总结

记录一下我的问题,希望能对你有所帮助,共同成长!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

广阔天地,大有可为

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值