大数据的读取

大数据的读取

因为从Xena上下载的甲基化数据太大,在读取时遇到点麻烦,特定查了下有没有什么方法可以只读取一部分,整理如下

大家有什么好的方法,敬请告知~

  • SCAN

    scan读取.txt文件

    比如读取下面文件的数据,每个数据以空格分隔

    image

(1)scan("student.txt", what="c") #以字符串的格式读取数据

(2)scan("student.txt", what="c", nlines=3) #读取3行

(3)scan("student.txt", what="c", skip=1) #忽略第1行

(4)lst <- scan("student.txt", what = list(xh="", xm="", xb="", nl=0), skip=1) #读取数据并保存到变量中

读取结果如下

image
image

scan读取.csv文件

.csv的文件默认是逗号分隔,所以在读取时要指定逗号为分隔符。

(1)scan("student.csv") #scan()函数默认以double格式存储数据,而该文件中包含不能转换的数据而报错

(2)scan("student.csv", what="c") #由于未指定分隔符,scan()函数将每一行作为一个数据域

(3)scan("student.csv", what="c", sep=",") #指定逗号作为分隔符后,可以正确读取数据了

(4)scan("student.csv", what="c", sep=",", skip = 1) #忽略第一行的标题行

(5)scan("student.csv", what = list(xh="", xm="", xb="", nl=0), sep=",", skip=1) #以列表的形式读取数据

(6)m <- matrix(scan("student.csv", what="c", sep=",", skip=1), ncol=4, byrow=TRUE) #读取数据并创建矩阵

image
  • fread

相比dplyr包,data.table包能够更大程度地提高数据的处理速度。data.table,用于快速处理大数据集

fread读取.tsv文件

  1. library(data.table)
  1. fread("example_data.txt",select=c("x1","x2"),data.table=F)
  1. data1<-fread("XXXXs.csv",header = T,stringsAsFactors = F)

readLines()

readLines()统计文件的行数

R语言逐行读取文件:

con <- file(inFile, "r")
lineCnt = 0
while(1){
oneline = readLines(con, n = 1)
if(length(oneline) == 0){
break
}
lineCnt = lineCnt+1 ### 统计的文件行数
}
close(con)

REF:

scan:https://baijiahao.baidu.com/s?id=1609781727359063276

data.table包中的fread:https://www.cnblogs.com/nxld/p/6066797.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容