R語言實戰(一)R語言介紹+(二)創建數據集

第1章 R語言介紹

1.1 為何要使用R

  • 免費開源
  • 功能全面
  • 可視化水平高
  • 互動式數據分析
  • 多數據源導入
  • 快速編程
  • 更新速度快
  • 多平台支持

配置環境

R下載:The Comprehensive R Archive Network

Rstudio下載:Download RStudio

1.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中導入數據的權威指南參見可在

cran.r-project.org/doc/下載的R Data Import/Export手冊

2.3.1 使用鍵盤輸入數據

R中的函數edit()會自動調用一個允許手動輸入數據的文本編輯器。具體步驟如下:

  1. 創建一個空數據框(或矩陣),其中變數名和變數的模式需與理想中的最終數據集一致;
  2. 針對這個數據對象調用文本編輯器,輸入你的數據,並將結果保存回此數據對象中。

2.3.2 從帶分隔符的文本文件導入數據

使用read.table()從帶分隔符的文本文件中導入數據


推薦閱讀:

R語言入門與實戰:大數據人才缺口巨大,現在學習還不晚
決策樹之ID3和C4.5
為什麼R語言是當今最值得學習的數據科學語言
用RStudio導入數據

TAG:大数据分析 | 大数据 | R编程语言 |