R in action

2.2.2 矩陣

矩陣是一個(gè)二維數(shù)組,只是每個(gè)元素都擁有相同的模式(數(shù)值型、字符型或邏輯型)。

可通過函數(shù)matrix()創(chuàng)建矩陣。

創(chuàng)建矩陣

y <- matrix(1:20, nrow = 5, ncol = 4) # 創(chuàng)建一個(gè)5x4的矩陣,nrow和ncol用以指定行和列的維數(shù)

cells <- c(1,26,24,68)
rnames <- c("R1","R2")
cnames <- c("C1","C2")

mymatrix <- matrix(cells,
nrow = 2,
ncol = 2,
byrow = TRUE,
dimnames = list(rnames, cnames)) # dimnames包含了可選的、以字符向量表示的行名和列名

mymatrix

矩陣下標(biāo)的使用

x <- matrix(1:10, nrow = 2)
x

x[1, c(4,5)] # 選擇了第一行第四、第五列的元素

數(shù)組,與矩陣類似,但是維度可以大于2;

數(shù)組函數(shù) myarray <- array (vector, dimensions, dimnames)

dimensions 是一個(gè)數(shù)值型向量,給出了各個(gè)維度下標(biāo)的最大值

dimnames是可選的、各維度名稱標(biāo)簽的列表

dim1 <- c("A1","A2")
dim2 <- c("B1","B2","B3")
dim3 <- c("C1","C2","C3","C4")

z <- array(1:24, c(2,3,4), dimnames = list(dim1,dim2,dim3) )
z
z[1,2,3]

數(shù)據(jù)框

由于不同的列可以包含不同模式(數(shù)值型、字符型等)的數(shù)據(jù),數(shù)據(jù)框的概念較矩陣來說更為一般。

patientID <- c(1,2,3,4)
age <- c(25,34,28,52)
diabetes <- c("Type1","Type2","Type1","Type1")
status <-c("Poor","Improve","Excellent","Poor")

patientdata <- data.frame(patientID,age,diabetes,status)
patientdata
patientdata[1:2] #數(shù)據(jù)框的前兩列
patientdata[c("diabetes","status")]
patientdata$age

table(patientdatadiabetes,patientdatastatus) # 可從大的數(shù)據(jù)框中選取部分?jǐn)?shù)據(jù)形成新的列聯(lián)表!

2-6 因子的使用

patientID <- c(1,2,3,4)
age <- c(25,34,28,52)
diabetes <- c("Type1","Type2","Type1","Type1")
status <- c("Poor","Improved","Excellent","Poor")
diabetes <- factor(diabetes)
status <- factor(status, ordered = TRUE)
patientdata <- data.frame(patientID,age, diabetes,status)

處理數(shù)據(jù)對象的使用函數(shù)

str(patientdata) # 顯示對象的結(jié)構(gòu)
summary(patientdata) # 顯示對象的統(tǒng)計(jì)概要

length(patientdata) # 顯示對象中元素/成分的數(shù)量
dim(patientdata) # 顯示某個(gè)對象的維度
class(patientdata) # 顯示某個(gè)對象的類或類型
mode(patientdata) # 顯示某個(gè)對象的模式
names(patientdata) # 顯示某個(gè)對象中各成分的名稱
head(patientdata) # 列出某個(gè)對象的開始部分
tail(patientdata) # 列出某個(gè)對象的最后部分
ls(patientdata) # 顯示當(dāng)前的對象列表

3.1 使用圖形

attach(mtcars)
class(mtcars)
head(mtcars)
str(mtcars)
plot(wt,mpg)
abline(lm(mpg~wt)) # 添加最優(yōu)擬合曲線
title("Regression of MPG on Weight")
detach(mtcars)

pdf("mygraph.pdf") # 要通過代碼保存圖形,將繪圖語句夾在開啟目標(biāo)圖形設(shè)備的語句和關(guān)閉目標(biāo)圖形設(shè)備的語句之間即可。
attach(mtcars)
plot(wt,mpg)
abline(lm(mpg~wt))
title("Regression of MPG on Weight")
detach(mtcars)
dev.off() # 除了pdf(),還可以使用函數(shù)win.metafile(), png(), jpeg(), bmp(), tiff(), xfig()和postscript()將圖形保存為其他格式

3.2 圖形初階

dose <- c(20,30,40,45,60)
drugA <- c(16,20,27,40,60)
drugB <- c(15,18,25,31,40)

plot(dose, drugA, type = "b") # type = "b" 表示同時(shí)繪制點(diǎn)和線
plot(dose, drugA, type = "p")

可以通過修改稱為圖形參數(shù)的選項(xiàng)來自定義一幅圖形的多個(gè)特征(字體、顏色、坐標(biāo)軸、標(biāo)簽)。

一種方法是通過函數(shù)par()來指定這些選項(xiàng)。以這種方式設(shè)定的參數(shù)值除非被再次修改,否則將在會(huì)話結(jié)束前一直有效。

不加參數(shù)地執(zhí)行par()將生成一個(gè)含有當(dāng)前圖形參數(shù)設(shè)置的列表。添加參數(shù)no.readonly = TRUE 可以生成一個(gè)可以修改的當(dāng)前圖形參數(shù)列表。

opar <- par(no.readonly = TRUE) # 復(fù)制了一份當(dāng)前的圖形參數(shù)設(shè)置
par(lty = 2, pch =17) # 將默認(rèn)的線條類型修改為虛線(lty = 2),并將默認(rèn)的點(diǎn)符號改為了實(shí)心三角(pch = 17)
plot(dose,drugA,type = "b")
par(opar)

指定圖形參數(shù)的第二種方法是為高級繪圖函數(shù)直接提供 optionname = value 的鍵值對。

這種情況下,指定的選項(xiàng)僅對這幅圖本身有效

plot(dose, drugA, type = "b", lty = 2, pch = 17)

pch 指定繪制點(diǎn)時(shí)使用的符號,可能的值如圖3-4

cex 指定符號的大小。cex是一個(gè)數(shù)值,表示繪圖符號相對于默認(rèn)大小的縮放倍數(shù)。

cex 默認(rèn)大小1,1.5表示放大默認(rèn)值的1.5倍,0.5 表示縮小為默認(rèn)值50%,等等

lty 指定線條類型,可能的值如圖3-5

lwd 指定線條寬度。lwd 是以默認(rèn)值的相對大小來表示的,默認(rèn)值為1,

例如。lwd=2將生成一條兩倍于默認(rèn)寬度的線條

R in Action Figure 3-4.png
R in Action Figure 3-5.jpeg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容