一、學(xué)習(xí)筆記
1.向量
向量是用于存儲數(shù)值型、字符型或邏輯型數(shù)據(jù)的一維數(shù)組。執(zhí)行組合功能的函數(shù) c() 可用來創(chuàng)建向量。例如:a <- c(1, 2, 5, 3, 6, -2, 4)

其中,a[c(2,4,6)]是指在向量a中第2,4,6個數(shù)值。
2.矩陣
矩陣是一個二維數(shù)組,只是每個元素都擁有相同的模式(數(shù)值型、字符型或邏輯型)??赏ㄟ^函數(shù) matrix() 創(chuàng)建矩陣。
一般使用格式為:
mymatrix <-matrix(vector,nrow=number_of_rows,ncol=number_of_columns,byrow=logical_value,dimnames=list(char_vector_rownames, char_vector_colnames))
其中 vector 包含了矩陣的元素, nrow 和 ncol 用以指定行和列的維數(shù), dimnames 包含了可選的、以字符型向量表示的行名和列名。選項 byrow 則表明矩陣應(yīng)當(dāng)按行填充(byrow=TRUE),還是按列填充( byrow=FALSE ),默認(rèn)情況下按列填充。

這是將矩陣元素按行填充。

在這里,是按列填充。
X[i,] 指矩陣 X 中的第i行, X[,j]指第j列, X[i, j] 指第i行第j 個元素。

3.數(shù)組
數(shù)組(array)與矩陣類似,但是維度可以大于2。數(shù)組可通過 array 函數(shù)創(chuàng)建,形式如下:myarray <- array(vector, dimensions, dimnames)
其中 vector 包含了數(shù)組中的數(shù)據(jù), dimensions 是一個數(shù)值型向量,給出了各個維度下標(biāo)的最大值,而 dimnames 是可選的、各維度名稱標(biāo)簽的列表。

從數(shù)組中選取元素的方式與矩陣相同。

所以,z[1,2,4]對應(yīng)的數(shù)值為21。
4.數(shù)據(jù)框
數(shù)據(jù)框可通過函數(shù) data.frame() 創(chuàng)建:mydata <- data.frame(col1, col2, col3,...),其中的列向量 col1 、 col2 、 col3 等可為任何類型(如字符型、數(shù)值型或邏輯型)。每一列的名稱可由函數(shù) names 指定。

可以使用前述(如矩陣中的)下標(biāo)記號,亦可直接指定列名。

patientdata[1:2]是指數(shù)據(jù)框中的第一、二列,也就是用下標(biāo)記號指出需要的列。“diabetes”和“status”是列名,通過列名篩選所需的列。第三種方式是用“$”完成,它被用來選取一個給定數(shù)據(jù)框中的某個特定變量。
5.因子
函數(shù) factor() 以一個整數(shù)向量的形式存儲類別值,整數(shù)的取值范圍是[1...k](其中k是名義型變量中唯一值的個數(shù)),同時一個由字符串(原始值)組成的內(nèi)部向量將映射到這些整數(shù)上。要表示有序型變量,需要為函數(shù) factor() 指定參數(shù) ordered=TRUE 。
數(shù)值型變量可以用 levels 和 labels 參數(shù)來編碼成因子。如果男性被編碼成1,女性被編碼成2,則以下語句:sex <- factor(sex, levels=c(1, 2), labels=c("Male", "Female"))

6.列表
可以使用函數(shù) list() 創(chuàng)建列表:mylist <- list(object1, object2, ...),其中的對象可以是目前為止講到的任何結(jié)構(gòu)。你還可以為列表中的對象命名:mylist <- list(name1=object1, name2=object2, ...)。

以上都是看書操作練習(xí)的代碼,中間出了幾次錯誤,一個字一個字的對照英文拼音看是否有錯,還出現(xiàn)了標(biāo)點符號沒有用英文符號的錯誤。
7.數(shù)據(jù)輸入
(1)鍵盤輸入

適合小數(shù)據(jù)的錄入。
(2)數(shù)據(jù)導(dǎo)入
接下來是操作數(shù)據(jù)導(dǎo)入,這里嘗試了一晚上都沒能把“csv"文件導(dǎo)入,后來去谷歌搜索,看了視頻操作以后,才明白自己哪里出錯了。

操作到這里之后,我就開始看猴子老師的LIVE第二講《數(shù)據(jù)結(jié)構(gòu)入門》
然后就開始跟著猴子老師的操作用Rstudio練習(xí)操作代碼。不過,第一時間還是用Rstudio學(xué)習(xí)csv、xlsx文件,發(fā)現(xiàn)比在R中操作要方便很多。

接著就是邊聽課,邊練習(xí):


在練習(xí)的過程,還是會犯一些英文輸入錯誤、標(biāo)點符號沒有注意錄入英文字符。
總結(jié):
1.先看書,再操作練習(xí)。
2.寫腳本,方便修改代碼。
3.先自學(xué)看書后,再聽課,聽課過程同步練習(xí)。
二、實戰(zhàn)作業(yè)
作業(yè)要求:根據(jù)”病例數(shù)據(jù)“,用合適的數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)存儲,以及進(jìn)行簡單的分析。
結(jié)果:創(chuàng)建數(shù)據(jù)框存儲病人信息,錄入新病人數(shù)據(jù)和添加性別一列,同時計算病人總?cè)藬?shù)、1型糖尿病人總數(shù)。


新增了兩個新病人的信息,同時錄入了每個病人的性別,得出總病人數(shù)是6人,1型糖尿病有3人。