官术网_书友最值得收藏!

1.5 數據存取與抽樣

前面介紹了各類R數據的創建方法,而在實際工作中,要分析或繪圖的數據是已有數據,因此在分析前,只需要將這類數據讀入R即可。R可以讀取多種類型的數據,也可以讀取數據庫中的數據,還可以在網上爬取數據。

1.5.1 數據存取

圖表繪制通常使用外部保存的數據文件,R可以讀取不同格式(包括CSV、TXT,以及Excel、SQL、HTML等數據文件)的外部數據。

1.讀入R格式的數據

R語言系統除自帶數據集外,本身還提供*.RData和*.rds兩種數據存儲格式。通過load()函數和readRDS()函數可以分別實現*RData格式和*rds格式數據的讀取。

(1)RData格式文件屬于非標準化存儲,既可以存儲數據,又可以存儲當前工作空間中的所有變量。

(2)RDS格式文件屬于標準化存儲,僅用于存儲單個R對象,且存儲時可以創建標準化檔案。

當數據本身為R格式,或已將其他格式數據保存為R格式,可以直接使用load()函數將指定路徑下的數據讀入(加載)R中。

2.讀取CSV/TXT格式的數據

CSV或TXT格式的數據是學習或工作中常見的文本型數據。其中,CSV格式數據是一種通用的數據格式,其他很多類型的數據均可轉換為CSV格式。使用read.table()與read.csv()函數可以很容易將CSV、TXT格式數據讀入R中,這里只介紹read.csv()。

部分參數的含義如表1-3所示。

表1-3 參數含義

【例1-18】文件讀取示例。

輸入代碼如下:

3.讀取Excel格式數據

使用xlsx包中的read.xlsx()函數和read.xlsx2()函數導入.xlsx格式的數據文件。在實際工作中建議使用CSV格式導入數據文件。

    TableA <- read.xlsx("D:/Rdata/Data.xlsx",sheetIndex=1)

也可以使用write.xlsx()函將數據文件導出為XLSX格式:

    write.xlsx(TableA," D:/Rdata/Data.xlsx",sheetName="Sheet Name")

注意在使用R ggplot2繪圖時,通常使用一維數據列表的數據框。當導入的數據表是二維數據列表時,需要使用reshape2包的melt()函數或者tidyr包的gather()函數將二維數據列表的數據框轉換成一維數據列表。

4.保存數據

當在R中錄入新數據,或者想要對讀入的數據以指定格式保存在指定的路徑中時,可以使用write.table()函數。當需要以CSV格式保存在指定的路徑中時,建議使用write.csv()函數。

部分參數的含義如表1-4所示。

表1-4 參數含義

【例1-19】文件保存示例。

輸入代碼如下:

1.5.2 數據抽樣

1.生成隨機數

工作中,有時需要生成各類分布的隨機數做模擬分析,R中產生隨機數時,只需在相應分布函數前加字母“r”即可,如生成均值為0、標準差為1的正態分布隨機數,代碼如下:

如果需要每次運行都產生相同的一組隨機數,可在生成隨機數之前使用set.seed()函數設定隨機數種子。例如:

    set.seed(9)

使用相同的隨機數種子,每次運行都會產生一組相同的隨機數。

【例1-20】產生隨機數示例。

輸入代碼如下:

2.隨機抽樣

實驗獲取的數據會比較龐大,實際應用需要從中抽取一個簡單隨機樣本以作為分析樣本。R的sample()函數可以實現隨機抽樣,其語法格式為:

    sample(x,size,replace=FALSE,prob=NULL)

其中,x是由一個或多個元素組成的向量,size是要抽取的元素個數(樣本量),replace確定是否采取放回抽樣,設置為TRUE表示有放回抽樣,默認為FALSE(不放回抽樣),prob是要抽取元素的概率權重向量。

【例1-21】隨機抽樣示例。

輸入代碼如下:

主站蜘蛛池模板: 博野县| 博爱县| 松滋市| 彭山县| 郎溪县| 佛冈县| 周宁县| 长白| 汉寿县| 张家川| 开化县| 仁怀市| 腾冲县| 新蔡县| 临城县| 罗平县| 邵阳县| 霍城县| 天等县| 丘北县| 阜阳市| 陆良县| 封开县| 逊克县| 中方县| 兰西县| 南汇区| 丹江口市| 景宁| 蒙城县| 太仓市| 凉山| 舟曲县| 页游| 固原市| 三江| 南岸区| 宜良县| 康乐县| 闻喜县| 镶黄旗|