在R中,可以使用read.table()函數方便的讀取具有多列表格形式的文件數據。文件中的數據一般情況,行對應的是樣本,列(字段)對應著相應的變量。讀取的數據將組織成數據框的結構。具體形式和參數解釋可以參考本站中的這篇文章:R語言中read.table()函數用法詳解。
本文主要給出一些具體的使用形式。
read.table()函數對于數據文件的擴展名并沒有要求。只要數據組織時是按照行和列的形式進行組織,且每個字段的數據以某種形式(如空白、逗號等)進行分隔即可。如下面兩個圖所示的文件格式都可以,甚至是使用其他分隔符分隔的也可以。
圖1 數據文件以空白(tab)進行分隔的形式
(1)read.table("gi.txt") #直接給出文件名稱,沒有指定額外的參數
結果形式如下:
在沒有給定分隔符時,默認以空白分隔(空格或tab制表符),并且可以看出原文件中的標題行也作為數據進行了處理。在沒有給定字段(變量)名稱時,read.table()函數依次給每列的變量名為v1,v2,...。讀取結果的第1列為行標標題。
(2)read.table("gi.txt",header=TRUE) #指定header為TRUE,指明原文件中包含變量名(字段名)
讀取結果如下:
(3)read.table("gi.txt",header=TRUE,col.names=c("year","x","y")) #指定列名的情形
結果如下:
(4)read.table("0504多元回歸開店問題.csv")
可以看出在以逗號作為分隔符的文件中,如果不指定數據的分隔符,read.table()函數會將所有的數據理解為一個字段(變量)下的數據。如果要正確讀出原數據的格式,可以使用下面的格式:
(5)read.table("0504多元回歸開店問題.csv",header=TRUE,sep=",")
可以看出,這次讀取的數據是符合要求的形式。
有時,我們只需要前N行的數據,這時,可以指定nrows參數。
(6)read.table("0504多元回歸開店問題.csv",header=TRUE,sep=",",nrows=15) #讀取前15行的數據
這樣指定nrows=15,則read.table()函數只讀取前15行的數據(不含標題行)。
有時,我們需要忽略前m行的數據,則可以指定skip參數。
(7)read.table("0504多元回歸開店問題.csv",header=TRUE,sep=",",skip=5) #忽略前5行的數據
這樣指定skip=5后,read.table()函數將從第6行數據讀取。
以上是關于read.table()函數經常使用的格式。
本文(完)
新聞熱點
疑難解答