R-數據加載(csv,excel,txt,rdata,spss,stata)

原始數據可以從本地文件,本地數據庫和網絡上獲取。本地文件主要包括:txt文件,csv文件,excel文件,RData文件,xml文件。本地數據庫類型包括SQL Server,Access,MySQL,SQLite等常見數據庫。網絡數據則包括直接存放在網絡上的文件數據(csv,excel,txt等)和需要進行爬取的網頁數據。
由於大部分的數據都是本地文件和網上的文件,因此這裏着重講解一下本地文件和網上文件的加載方式。有需要加載數據庫文件,或諸如SPASS數據,SAS數據,Stata數據,XML數據等特殊數據的,可以留言給我。

1.從鍵盤中讀取數據

#1.設置要讀入數據的列名和數據類型
data=data.frame(name=character(0),age=numeric(0))
#2.edit()函數會自動彈出一個表格填寫想要輸入的數據
data=edit(data)

2.讀取txt數據和csv數據,網絡數據

data=read.table(file/url, header=TRUE, sep="", row.names=c(), col.names=c(),encoding="", colClasses=c(), stringsAsFactors=TRUE)

read.table()函數可以讀取txt和csv兩種數據類型。
常用的參數也就是以下幾個:
file/url: 可以是本地文件,如"mydic/xxx.csv",也可是指定具體網址的網絡文件。
header: TRUE表示數據含有列名,FALSE表示原始數據不含列名,只有數據。
sep: 指定數據之間的分隔符,默認爲空。若是空格,則需要打一個空格鍵。
row.names: 若原始數據沒有列名,可以通過該參數指定列名。如:row.names=c(“name”,“age”,“height”).
col.names: 爲數據指定行名稱。
encoding: 指定讀取數據時的編碼方式。有時候讀取中文數據時,會出現亂碼,這時候encoding="UTF-8"就可以解決問題。記住裏面UTF是大寫,不能小寫。
colClasses: 爲每列指定數據類型。有時候讀取的數據類型不是我們想要的,可以在讀取時指定數據類型,如colClasses=c(“character”,“numeric”,“factor”).
stringAsFactors: 由於讀取數據時,函數會自動將字符串數據轉化成因子類型。將該值設置爲FALSE後,就不會自動轉化了。
其他參數不是很常用,如需要,可自行查資料。

3.讀取excel數據

R讀取excel數據前需要安裝並加載xlsx包,實質是調用該包進行數據讀寫的。
部分參數和上面的參數一致,這裏不再贅述,來看幾個特別的參數

#這個xlsx包一定要加載,否則無法讀取數據
liabrary(xlsx)
read.xlsx(file, sheetName="",sheetIndex=1,colIndex=c(), rowIndex=c())

sheetName: 由於一個excel文件可能包含多個表,因此需要指定讀取哪個表。sheetName指定目標表的名稱。
**sheetIndex:**指定目標表的索引。(注意R中所有的索引都是從1開始的,這與Python是不一樣的)
colIndex: 指定需要讀取的列,如colIndex=c(1,3,4)。僅讀取第1,3,4 列。
rowIndex: 指定要讀取的行。

另外還有一個read.xlsx2()的函數,該函數用於處理大型的excle表格(超過10萬行),這個函數內部調用了java函數,因此用之前需要安裝java.

4.讀取csv數據

參數同read.table(), 不再贅述。

read.csv(file,...)

5.讀取RData數據

由於RData數據加載後並不顯示內部包含哪些數據集,因此可以通過str()函數查看內部數據情況。

#load()函數加載數據,但返回的data並不是最終的數據集,而是數據集的一個容器。
data=load("xxx.RData")
#str()函數查看容器內部數據集
str(data)

6.導入SPSS,SAS,Stata數據

#需要加載Hmisc包
library(Hmisc)
#加載spss數據
data=spss.get("mydata.sav", use.value.labels=TRUE)
#加載SAS數據,需要提前安裝SAS軟件。
data=sas.get(datadir, member="clients",sasprog="c:/xx/xx/sas.exe")
#加載Stata數據
library(foreign)
data=read.dta("xxx.dta")

補充:

有其他數據類型加載需求或有任何疑問,可留言給我。轉載請標明出處,感謝。
歡迎關注公衆號:moisiets
數據小丸子

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章