一、 r 匯入文字檔案
r中匯入資料的基本命令是scan()。比較常用的命令有read.table()、read.csv()、read.fwf()等,這些命令其實在內部也是通過呼叫scan()實現的,它們可以看作是scan()的簡化。
r從使用分界符的文字(delimited text)讀取資料到資料框的命令為read.table()。關於此文字的格式,有以下要求:
讀取符合以上要求的文字檔案的最簡單的命令為:
mydata <- read.table("mydata.txt")
儲存資料為文字檔案的命令為write.table()。最簡單的用法為:
write.table(mydata, file="mydata.txt")
1.1 csv格式
最常見的一種資料文字檔案格式為csv(comma separated value)檔案,採用逗號作為分界符,第一行為變數名,第一列為id,缺失值用空格表示。讀取csv檔案的命令為:
mydata <- read.table("mydata.csv", header=true, sep=",", row.names="id", na.strings=" ")
r中也有專門的讀取csv檔案的命令read.csv()。一般的用法為:
mydata <- read.csv("mydata.csv", row.names="id", na.strings=" ")
1.2 定寬格式
從定寬(fixed-width)格式讀取資料的命令為read.fwf()。定寬格式中只有資料值,沒有變數名,資料列之間沒有分界符。每一列資料的寬度一定。例如:
mydata <- read.fwf(file="mydata.txt", width=c(1,1,2), col.names=c("id","gender","age"), row.names="id")
read.fwf()其實在內部是首先將定寬文字讀入、分割列,然後呼叫read.table()來實現的。
另外,read.fortran()讀入的是按fortran的規範來格式化的定寬文字檔案。
1.3 dif格式
從資料交換格式(dif, data interchange format)讀取資料的命令為read.dif()。
excel的剪貼簿就是使用這種格式來儲存資料的,因此可以用這一命令來讀取剪貼簿中的excel資料,其最簡單的呼叫為:
mydata <- read.dif("clipboard")
1.4 指定資料列
因為r的所有資料運算都在記憶體中執行,節省記憶體空間在實踐中是非常重要的。在讀入資料後,所有的資料都被放入記憶體。為了節省記憶體的使用,在讀取資料時就應當有選擇地唯讀入對當前任務有用的資料。
read.table()函式可以通過colclasses引數來實現對資料列的選擇。colclasses引數引用乙個字元向量。colclasses引數的本意是設定每一列的數值型別,但是可以通過設定null型別來跳過不需要的資料列。比如:
mydata <- read.table("mydata.txt", colclasses=c("integer", "character", "null", "logical"))
通過使用上面的命令,讀取的資料就跳過了資料檔案中的第3列。使用colclasses引數必須指明每一列的型別。使用colclasses引數可以大幅提公升資料的讀入速度。
在讀取定寬文字檔案(fixed-width file)時選擇列的方法是設定列寬為負數。例如:
mydata <- read.fwf(file="mydata.txt", width=c(1,-1,2), col.names=c("id","gender","age"), row.names="id")
通過使用上面的命令,讀取的資料就跳過了資料檔案中的第2列。
1.5 使用scan()命令
read.table()和read.fwf()都是通過呼叫scan()來實現的。在某些時候直接使用scan()可以更快速的讀取資料。
比如讀入乙個200*2000的數值矩陣可以採用:
mymatrix <- matrix(scan("matrix.dat", n = 200*2000), 200, 2000, byrow = true)
如果用read.table()那麼其命令為:
mymatrix <- as.matrix(read.table("matrix.dat"))
第二種方式所花的時間是第一種方式的10倍。
scan()命令中使用what引數來設定所讀入的資料型別,設定恰當的what引數可以大幅提高資料的讀入速度。
scan()命令還能從鍵盤讀入資料。
可使用foreign包匯入外部格式的資料。
二、 r 匯入其它統計軟體的資料
r 匯入二進位制檔案:使用readbin()和writebin()函式來讀寫。
可以使用foreign包來匯出資料。匯出資料的命令為write.foreign()。
也可使用hmisc包匯入外部格式的資料。
r語言electricity資料集 R語言 資料集
第二章 建立資料集 1.r語言的資料型別 數值型 字元型 邏輯型 複數型 虛數 和原生型 位元組 2.資料結構 a.向量 儲存數值型 字元型和邏輯型資料的一維陣列 a c 1,2,3,4,5 建立 組合功能的函式c a 1 1 2 3 4 5 a c 1,4 訪問 方括號 向量中指定的元素 1 1 ...
r 讀入檔案多位元組字串有錯 R語言學習筆記
1.安裝r包時,顯示 8c 多位元組字串有錯 原因 win10與r3.5以上版本 特指3.5.0及3.5.1 不相容 解決方法 解除安裝當前版本的r軟體,安裝3.5以前的老版本 如r3.4.4 即可解決這個問題。windows版本 2.儲存rdata檔案時發現 解決方法 不要儲存在r studio的...
r語言資料變數分段 R語言之資料彙總
我們在分析資料的時候,除了資料結構上的調整之外,很多時候也需要將資料進行彙總處理,比如最簡單的計算行列均值 方差等,同時,資料彙總的結果也可以幫助進行一些實驗設計和視覺化顯示,下面我們說一下如何使用r進行資料彙總處理。一 簡單的行列彙總 1.可以使用colmean colsums 對列計算均值和求和...