1、不管是讀取數據還是寫入,R都是在工作路徑中完成的。所以首先我們要知道我們的R所在的工作路徑是在哪里。使用getwd()函數來獲取我們的工作路徑。
2、下面查看工作路徑里面有哪些文件,使用dir()函數。
3、如果你所想導入的數據并不在你當前的工作路徑中,有兩種方法可以解決。第一種就是把數據文件放到工作路徑中,第二種方法就是更改工作路徑。更改工作路徑使用setwd()函數。比如你想要把工作路徑設置成桌面。
4、現在我讀取我工作路徑中,名字為hw1_data.csv的文件。使用read.csv()函數。
5、也可以使用read.table()函數來讀取csv格式的文件。由于csv文件的分隔符是“,”所以我們在用read.table()函數的時候,sep參數,我們要設定為sep=“,”。
6、發現read.table()讀出來的數據,列名并不是我們文件中的列名,而是V1,V2。。。我們需要加上header這個參數來修改這個問題。
1、對于網頁為csv文件的頁面,可以直接用read.csv函數導入網頁數據并轉為數據框的形式。html格式的網頁也可以讀取。
例如:
data<-read.csv(text="itisapage")#text是要查看的文本
head(data,10)
#讀取網頁數據的代碼data<-read.csv("page"),page可以是要查看的網址或文本。
2、R基礎包中的readLines可以讀取網頁或文本數據。
#輸入文本
cat("asqsd\n1213",file="a1")
readLines("a1")#讀取文本數據
#cat中"\n"表示換行。
3、RCurl包中的getURL()函數獲取網頁數據。
library(RCurl)
data<-getURL("a1")#a1為某個具體的網址。
head(data)
4、通過getURL直接獲取的數據有些凌亂,可以借助library(XML)解析樹函數htmlTreeParse處理。
library(XML)#解析樹函數htmlTreeParse
data_Parse<-htmlTreeParse(data)
head(data_Parse,2)
5、對于復雜網站的文本數據,用rvest包中的read_html函數來提取文本數據。
library(rvest)
page<-read_html("a1")#a1為某個具體的網址
data<-html_nodes(page,"table")
head(data)
#本例中沒有輸入網址,所以結果為空。
6、通過html_nodes獲得的數據不能直接投入使用。
table<-html_table(data);table#提取表格數據,可以得到多個表格結果
table[1]#查看第1個表
text<-html_text(data);text#提取文本數據
#在實際應用中,可以發現提取表格后的數據或文本是非常便于分析的。