第二章 數(shù)據(jù)的讀取和保存
-
查看和載入數(shù)據(jù)集
data()
查看數(shù)據(jù)集列表
data(CO2)
載入CO2數(shù)據(jù)集
library(MASS)
載入MASSpackage
data(package=”MASS”)
查看MASS中數(shù)據(jù)集
data(SP500, package=”MASS”)
載入MASS中的SP500數(shù)據(jù)集
-
工作目錄獲取和設(shè)置
getwd()
獲取各種目錄
setwd(“d:/data”)
設(shè)置工作目錄
-
讀取數(shù)據(jù)
read.table()
讀取文本文件,常用參數(shù)如下:
file 要讀取的數(shù)據(jù)文件名稱
header 邏輯值,TRUE表示文件的第一行包含變量名,默認(rèn)為FALSE
sep 文件中字段的分隔符,默認(rèn)為sep=””,表示分隔符是空格
quote 設(shè)置如何引用字符型變量,默認(rèn)字符串被引號,如果沒有設(shè)定分隔符,引號前面加\,即quote=”\”
dec 設(shè)置用來表示小數(shù)點的字符
row.names 向量的行名,默認(rèn)為1,2,3。。。
col.names 向量的列名,默認(rèn)為V1,V2,V3。。。
na.strings 賦給缺失數(shù)據(jù)的值(NA)
skip 開始讀取數(shù)據(jù)前跳過的數(shù)據(jù)文件的行數(shù)
strip.white 是否清除空白字符
blank.lines.skip 是否跳過空白行
-
舉例
data <- read.table(“d:/data/salary.txt”,header=TRUE)
直接讀入完整的路徑名稱
read.csv()
讀取逗號分隔文件,header默認(rèn)值為TRUE
read.delim()
針對使用其他分隔符的數(shù)據(jù)(并且不使用行號),sep默認(rèn)值為”\t”
scan()
如果不加參數(shù),則手動輸入數(shù)據(jù),大部分參數(shù)與read.table相同,沒有header參數(shù),其他需要注意的參數(shù)如下:
what 指定要讀取的數(shù)據(jù)類型,默認(rèn)為數(shù)值型向量
nmax 指定要讀入數(shù)據(jù)的最大數(shù)量,如果what=list,則為最大的行數(shù),默認(rèn)將讀到文件末端
n 要讀取數(shù)據(jù)的最大數(shù)量,默認(rèn)值為沒有限制
-
舉例
data2 <- scan(“salary.txt”,skip=1,what=list(City=””,Work=0,Price=0,Salary=0))
由于不存在header參數(shù),skip=1說明跳過表示名稱的第一行;what=list(City=””,Work=0,Price=0,Salary=0)
指明要創(chuàng)建列表,指明列表中對象的名稱,這是一個名義列表結(jié)果,用來指定第一個變量City是字符型,后面三個是數(shù)值型
mode()
顯示對象的類型
names()
顯示對象中的標(biāo)簽
dim()
顯示對象的維度
attach()
固定搜索路徑,常用于固定一個數(shù)據(jù)框,則可以直接引用數(shù)據(jù)框的列名,起相同作用的還有with()
函數(shù)
detach()
與attach()
作用相反
read.fwf()
讀取固定寬度格式的文件,以行的方式讀入數(shù)據(jù),通過widths參數(shù)指定一個向量來設(shè)置各個字段的寬度,注意小數(shù)點也占一個字符
舉例
data.fwf <- read.fwf(“d:/data/fwf.txt”,widths=c(2,4,4,3),col.names=c(“w”,”x”,”y”,”z”))
data.excel <- read.delim(“clipboard”)
先復(fù)制,然后從剪貼板讀取,讀取excel的便捷方式,或者使用RODBC包或者xlsx包
readHTMLTable()
XML包讀取網(wǎng)頁的函數(shù),主要參數(shù)如下:
doc HTML文件或URL(網(wǎng)頁網(wǎng)址)
header 若為邏輯值,表示是否包含列標(biāo)簽,若為字符向量,則為列名賦值
colClasses 一個列表或向量,制定表中各列數(shù)據(jù)的類型
skip.rows 指定要忽略的行
trim 邏輯值,表示是否要刪除開頭和結(jié)尾的空白單元格
which 整數(shù)向量,表示返回網(wǎng)頁中的哪幾個表
load()
載入R格式的文件,.Rdata結(jié)尾的文件
-
foreign包
read.spss()
read.mtp()
read.ssd()
read.dta()
spss數(shù)據(jù)集,使用Hmisc包中的spss.get()
函數(shù)
-
輸出對象
cat()
在屏幕上輸出對象,或輸出文件,append參數(shù)為TRUE表示追加
readLines()
直接從鏈接中以行的形式讀入文本
write.table()
寫入文本
write.csv()
寫入csv文件
save()
保存R對象