R语言有很多用于存储数据的结构,包括标量、向量、数组、数据框、列表。
标量:
只含有一个元素的向量,如3,"hello",TRUE
向量:
一维数组,每个元素的类型必须相同。
可以用c方便的产生向量
c(2,3,5) c(2:6) #[2,3,4,5,6] c(1,7:9) #[1,7,8,9]
矩阵:
矩阵是二维数组
y <- matrix(1:20, nrow=5, ncol=4) y[2,3] y[2,] y[,3]
y[2,c(2,4)] cells <- c(2,3,5,8) rnames <- c("r1","r2") cnames <- c("c1","c2") mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE, dimnames=list(rnames,cnames)) mymatrix
数组:
与矩阵类似,但维数可以大于2.
创建形式如下:
myarray <- array(vector, dimensions, dimnames)
举例
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
数据框:
与矩阵不同,数据框不同的列可以为不同的数据类型。它是R中最常处理的数据结构。
patientID <- c(1,2,3,4) age <- c(25,34,28,52) diabetes <- c("Type1","Type2","Type1","Type1") status <- c("poor","improves","excellent","poor") patientdata <- data.frame(patientID, age, diabetes, status) patientdata
patientdata[1:2]
patientdata[c("diabetes","status")]
patientdata$age
因子:
列表:
从带分隔符的文本文件导入数据:
grades <- read.table("filename.csv",header=TRUE, sep=",", rownames="studentid")
分隔符默认是空格,表示可以为一个或多个空格、制表符、换行或回车符。
导入excel文件:
下载并安装RODBC包。office07需要用xlsx包。