最近在看R语言教程,希望能够掌握一些炫酷的技能,这是专题笔记01:
1.学习笔记:了解R语言的基本数据结构,包括向量、矩阵、数组、数据框、因子、列表;
1.1向量
//执行组合功能的函数c()
a <- c(1, 2, 3)
b <- c("one", "two" , "three")
c <- c(TRUE, FALSE)
1.2矩阵
//可通过函数matrix创建矩阵
y <- matrix(1:20, nrow=5, ncol=4) //创建一个5*4矩阵
mymatrix <- matrix(data = vector, nrow = number_of_rows, ncol = number_of_collumns, byrow = FALSE,
dimnames = list(rownames, colnames))
其中vector包含了矩阵的元素,nrow和ncol用以指定行和列的维数,dimnames包含了可选的、以字符型向量表示的行名和列名。
选项byrow则表明矩阵应当按行填充(byrow=TRUE)还是按列填充(byrow=FALSE),默认情况下按列填充。
1.3数组
//数组可通过array函数创建
marry <- array(vector, dimensions, dimnames)
其中vector包含了数组中的数据,dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表
Example:
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))
像矩阵一样,数组中的数据也只能拥有一种模式。
1.4数据框
//数据框可通过函数data.frame()创建
mydata <- data.frame(col1, col2, col3, ...)
其中的列向量col1, col2, col3,... 可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数names指定。
Example:
> patientID <- c(1,2,3)
> age <- c(21,24,23)
> diabetes <- c("Type1", "Type2", "Type3")
> status <- c("poor", "improved", "Excellent")
> patient data <- data.frame(patientID, age, diabetes, status)
> patienddata
补充部分:attach()、detach()、和with()
1.5因子
类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1... k ](其中k 是名义型变量中唯一值的个数),同时一个由字符串(原始值)组成的内部向量将映射到这些整数上。
Example:
diabetes <- c("Type1", "Type2", "Type1", "Type1")
diabetes <- factor(diabetes)
函数str(object)可提供R中某个对象的信息;
函数summary()会区别对待各个变量;
1.6列表(list)
列表(list)是R的数据类型中最为复杂的一种。一般来说,列表就是一些对象(或成分,component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。
g <- "My First List"
h <- c(25, 26, 27, 28)
j <- matrix(1:10, nrow = 5)
k <- c("one", "two", "three")
mylist <- list(title=g, ages=h, j, k)
mylist
通过在双重方括号中指明代表某个成分的数字或名称来访问列表中的元素。
提问:数据框和列表的区别?
DAY01-END
网友评论