常規讀取
一般我們讀取文件時都會讀取全部的文件然后再進行操作,因為R是基於內存進行計算的。
data <- read.table("C:\\Users\\Hider\\Desktop\\test.txt",
header = TRUE,
encoding = "gbk")
但是當讀取的數據量很大的時候,讀取的時間會讓人捉急,而且會把內存給占滿,讀完數據之后就不用進行下一步操作了,因為電腦都卡死了。
所以只讀取數據的前n行是一個不錯的選擇,邊讀取邊進行處理。
讀取前n行數據
根據數據的分隔符不同,修改函數的sep=''
分隔符進行適應。
readfile <- function(file, n= 100, 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
}
讀取測試數據:
data <- readfile(file = "C:\\Users\\Hider\\Desktop\\test.txt",
n = 2,
header = TRUE)
# 序號 數學 語文
# 1 A 100 200
# 2 B 25 26
參考鏈接:R語言-讀取前n行數據