R語言實戰(一)R語言介紹+(二)創建數據集
第1章 R語言介紹
1.1 為何要使用R
- 免費開源
- 功能全面
- 可視化水平高
- 互動式數據分析
- 多數據源導入
- 快速編程
- 更新速度快
- 多平台支持
配置環境
R下載:The Comprehensive R Archive Network
Rstudio下載:Download RStudio1.3 R的使用
和其他語言區別:R使用 <- 或 -> (少用)賦值,一般不用 = ,但也不是不可以用 = ;和Python一樣,不用分號分隔語句
使用c()輸入數據,示例:age <- c(1, 3, 5, 6, 10)
mean(a)用來求平均值,sd(a)求標準差,cor(a, b)求兩個值的線性關係,````plot(a, b)```用於可視化數據,生成點陣圖(此處的a,b均為舉例使用)
help.start() 打開幫助文檔首頁
?foo 查看函數foo的幫助,??foo 搜索關於foo的文檔,example(foo) 顯示foo的使用示例1.4 包
包類似Python中的包的概念,也就是打包好了,開箱即用的鎚子
使用方法: install.packages("gclus") 安裝gclus包的示例代碼 library(gclus) 載入包在Windows上,路徑名中使用了。 R將反斜杠視為一個轉義字元。 setwd("c:
mydata")會報錯。正確的寫法是setwd("c:/mydata")或setwd("c:mydata")
第2章 創建數據集
- R的數據結構
- 輸入數據
- 導入數據
- 標註數據
2.1 數據集的概念
數據集通常是由數據構成的一個矩形數組,行表示觀測,列表示變數。
統計學家稱它們為觀測(observation)和變數(variable) ,資料庫分析師則稱其為記錄(record)和欄位(field) ,數據挖掘/機器學習學科的研究者則把它們叫做示例(example)和屬性(attribute)。我們在本書中通篇使用術語觀測和變數。2.2 數據結構
在R中,對象(object)是指可以賦值給變數的任何事物,包括常量、數據結構、函數,甚至圖形。
因子(factor)是名義型變數或有序型變數。它們在R中被特殊地存儲和處理。
2.2.1 向量
向量是用於存儲數值型、字元型或邏輯型數據的一維數組。
使用c()來創建向量
單個向量中的數據必須擁有相同的類型或模式(數值型、字元型或邏輯型)。同一向量中無法混雜不同模式的數據。2.2.2 矩陣
矩陣是一個二維數組,只是每個元素都擁有相同的模式(數值型、字元型或邏輯型)。
使用matrix()創建矩陣:
a <- matrix(向量名, nrow = 行數, ncol = 列數, byrow = *TRUE則按行填充,FALSE則按列,默認按列*, dimnames = list(行名,列名))
dimnames可有可無,行名和列名需要先保存到一個矩陣中,再寫入matrix中,例如要寫dimnames = list(rnames, cnames) 進matrix中,則先要有:
rnames <- c("R1", "R2")cnames <- c("C1", "C2")
2.2.3 數組
數組(array)與矩陣類似,但是維度可以大於2。
使用array()創建數組:
a <- array(向量名, dimnames = list(列向量,行向量,維度向量))
2.2.4 數據框
用data.frame() 創建數據框:
a <- data.frame(向量1,向量2,向量3,向量4)
選取數據的方法:
使用attach()和detach()選取數據
使用patientdata$ 略嫌麻煩,可以用attach()和detach()替代:
attach(patientdata) summary(age) plot(age, status)detach(patientdata)
函數attach()可將數據框添加到R的搜索路徑中。 函數detach()將數據框從搜索路徑中移除。
局限性:
若是有全局變數和局部變數重名,attach()中的同名局部變數被選取時,會使用外部的全局變數,從而出錯,所以:函數attach()和detach()最好在你分析一個單獨的數據框,並且不太可能有多個同名對象時使用。
使用with()選取數據
示例代碼:
with(patientdata, { summary (age, status, diabetes) plot (age, status) plot(age, diabetes)})
若是只有一條語句,{}可以省略
使用with()選取就不會遇到attach()的問題,因為with()只會選取數據框內的局部變數,無需擔心衝突。
局限性:
若是有賦值語句,賦值僅在此函數的括弧內生效。 解決辦法:如果需要創建全局對象,使用特殊賦值符<<-即可將對象保存在with()外的全局環境中。例如state <<- summay(age)實例標識符
實例標識符通過rowname指定,例如:
patientdata <- data.frame(patientID, age, diabetes, status, row.name = patientID)
2.2.5 因子
類別(名義型)變數和有序類別(有序型)變數在R中稱為因子(factor) 。因子在R中非常重要,因為它決定了數據的分析方式以及如何進行視覺呈現。
函數factor()以一個整數向量的形式存儲類別值,用法:
diabetes <- c("Type1", "Type2", Type1", Type2")diabetes <- factor(diabetes)
會將函數內的變數存儲為數字,並在其內部關聯:Type1 = 1和Type2 = 2。數字根據字母順序決定,即A, B, C, D, …。
在上述語句中加入ordered=TRUE,可以在針對此向量的分析中將其作為有序型變數對待。
若是想要自定義順序,則通過levels選項來修改排序。例如:
status <- factor(status, order=TRUE, levels=c("Poor", "Improved", "Excellent"))
此時,各項賦值為Poor=1, Improved=2, Excellent=3。
2.2.6 列表
列表就是一些對象(或成分,component)的有序集合。列表允許你整合若干(可能無關的)對象到單個對象名下,可能是若干向量、矩陣、數據框,甚至其他列表的組合。
使用list()創建列表:
mylist <- list(object1, object2, ...)
也可命名列表裡的對象:
mylist <- list(name1 = object1, name2 = object2, ...)
R語言一些值得注意的特性:
- 將一個值賦給某個向量、矩陣、數組或列表中一個不存在的元素時, R將自動擴展這個數據結構以容納新值。舉例來說,考慮以下代碼: 通過賦值,向量x由三個元素擴展到了七個元素。
- R中的下標不從0開始,而從1開始。在上述向量中, x[1]的值為8
2.3 數據的輸入
向R中導入數據的權威指南參見可在
http://cran.r-project.org/doc/manuals/R-data.pdf下載的R Data Import/Export手冊2.3.1 使用鍵盤輸入數據
R中的函數edit()會自動調用一個允許手動輸入數據的文本編輯器。具體步驟如下:
- 創建一個空數據框(或矩陣),其中變數名和變數的模式需與理想中的最終數據集一致;
- 針對這個數據對象調用文本編輯器,輸入你的數據,並將結果保存回此數據對象中。
2.3.2 從帶分隔符的文本文件導入數據
使用read.table()從帶分隔符的文本文件中導入數據
推薦閱讀:
※R語言入門與實戰:大數據人才缺口巨大,現在學習還不晚
※決策樹之ID3和C4.5
※為什麼R語言是當今最值得學習的數據科學語言
※用RStudio導入數據