一、学习笔记
1.向量
向量是用于存储数值型、字符型或逻辑型数据的一维数组。执行组合功能的函数 c() 可用来创建向量。例如:a <- c(1, 2, 5, 3, 6, -2, 4)

其中,a[c(2,4,6)]是指在向量a中第2,4,6个数值。
2.矩阵
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可通过函数 matrix() 创建矩阵。
一般使用格式为:
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 用以指定行和列的维数, dimnames 包含了可选的、以字符型向量表示的行名和列名。选项 byrow 则表明矩阵应当按行填充(byrow=TRUE),还是按列填充( byrow=FALSE ),默认情况下按列填充。

这是将矩阵元素按行填充。

在这里,是按列填充。
X[i,] 指矩阵 X 中的第i行, X[,j]指第j列, X[i, j] 指第i行第j 个元素。

3.数组
数组(array)与矩阵类似,但是维度可以大于2。数组可通过 array 函数创建,形式如下:myarray <- array(vector, dimensions, dimnames)
其中 vector 包含了数组中的数据, dimensions 是一个数值型向量,给出了各个维度下标的最大值,而 dimnames 是可选的、各维度名称标签的列表。

从数组中选取元素的方式与矩阵相同。

所以,z[1,2,4]对应的数值为21。
4.数据框
数据框可通过函数 data.frame() 创建:mydata <- data.frame(col1, col2, col3,...),其中的列向量 col1 、 col2 、 col3 等可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数 names 指定。

可以使用前述(如矩阵中的)下标记号,亦可直接指定列名。

patientdata[1:2]是指数据框中的第一、二列,也就是用下标记号指出需要的列。“diabetes”和“status”是列名,通过列名筛选所需的列。第三种方式是用“$”完成,它被用来选取一个给定数据框中的某个特定变量。
5.因子
函数 factor() 以一个整数向量的形式存储类别值,整数的取值范围是[1...k](其中k是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。要表示有序型变量,需要为函数 factor() 指定参数 ordered=TRUE 。
数值型变量可以用 levels 和 labels 参数来编码成因子。如果男性被编码成1,女性被编码成2,则以下语句:sex <- factor(sex, levels=c(1, 2), labels=c("Male", "Female"))

6.列表
可以使用函数 list() 创建列表:mylist <- list(object1, object2, ...),其中的对象可以是目前为止讲到的任何结构。你还可以为列表中的对象命名:mylist <- list(name1=object1, name2=object2, ...)。

以上都是看书操作练习的代码,中间出了几次错误,一个字一个字的对照英文拼音看是否有错,还出现了标点符号没有用英文符号的错误。
7.数据输入
(1)键盘输入

适合小数据的录入。
(2)数据导入
接下来是操作数据导入,这里尝试了一晚上都没能把“csv"文件导入,后来去谷歌搜索,看了视频操作以后,才明白自己哪里出错了。

操作到这里之后,我就开始看猴子老师的LIVE第二讲《数据结构入门》
然后就开始跟着猴子老师的操作用Rstudio练习操作代码。不过,第一时间还是用Rstudio学习csv、xlsx文件,发现比在R中操作要方便很多。

接着就是边听课,边练习:


在练习的过程,还是会犯一些英文输入错误、标点符号没有注意录入英文字符。
总结:
1.先看书,再操作练习。
2.写脚本,方便修改代码。
3.先自学看书后,再听课,听课过程同步练习。
二、实战作业
作业要求:根据”病例数据“,用合适的数据结构进行数据存储,以及进行简单的分析。
结果:创建数据框存储病人信息,录入新病人数据和添加性别一列,同时计算病人总人数、1型糖尿病人总数。


新增了两个新病人的信息,同时录入了每个病人的性别,得出总病人数是6人,1型糖尿病有3人。
网友评论