在R中创建数据集有两步:
1、选择一种数据结构来存储数据;
2、将数据导入或输入到该数据结构中。
数据集:由数据构成的矩形数组,行表示观测、列表示变量。
存储数据的对象类型:标量、向量、矩阵、数组、数据框、列表。
向量
> setwd("D:\Documents\R\Rdataset")
错误: 由""D:\D"开头的字符串中存在'\D',但没有这种逸出号
> setwd("D:/Documents/R/Rdataset") #目录斜线只能是撇。
> a <- c(1,2,8,3,-6,0) #数值型向量
> b <- c("one","second","three") #字符型向量
> c <- c(TRUE,FALSE,FALSE,TRUE,TRUE) #逻辑型向量
> a[3] #和其他语言不同在于,没有“第零个”。
[1] 8
> a[c(3,4)]
[1] 8 3
> a[3:6]
[1] 8 3 -6 0
>
矩阵
> load("D:\\Documents\\R\\Rdataset\\.RData")
> y <- matrix(1:20,nrow=5,ncol=4) #创建5*4矩阵
> y
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
> 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))#创建2*2矩阵(按行填充)
> mymatrix
C1 C2
R1 1 26
R2 24 68
>
> mymatrixs <- matrix(cells,nrow=2,ncol=2,byrow=FALSE,dimnames=list(rnames,cnames))#创建2*2矩阵(按列填充)
> mymatrixs
C1 C2
R1 1 24
R2 26 68
>
> x <- matrix(1:10,nrow=2)
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 3 5 7 9
[2,] 2 4 6 8 10
> x[2,]
[1] 2 4 6 8 10
> x[,2]
[1] 3 4
> x[1,4]
[1] 7
> x[1,c(4,5)]
[1] 7 9
>
数组
> 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'
> Z
, , C1
B1 B2 B3
A1 1 3 5
A2 2 4 6
, , C2
B1 B2 B3
A1 7 9 11
A2 8 10 12
, , C3
B1 B2 B3
A1 13 15 17
A2 14 16 18
, , C4
B1 B2 B3
A1 19 21 23
A2 20 22 24
> Z[1,2,3]
[1] 15
>
数据框
> patientID <- c(1,2,3,4)
> age <- c(25,34,28,52)
> diabetes <- c("Type1","Type2","Type1","Type1")
> status <- c("Poor","Improved","Excellent","Poor")
> patientdata <- data.frame(patientID,age,diabetes,status)
> patientdata
patientID age diabetes status
1 1 25 Type1 Poor
2 2 34 Type2 Improved
3 3 28 Type1 Excellent
4 4 52 Type1 Poor
> patientdata[1:2]
patientID age
1 1 25
2 2 34
3 3 28
4 4 52
> patientdata[c("diabetes","status")]
diabetes status
1 Type1 Poor
2 Type2 Improved
3 Type1 Excellent
4 Type1 Poor
> patientdata$age
[1] 25 34 28 52
> table(patientdata$diabetes,patientdata$status)
Excellent Improved Poor
Type1 1 0 2
Type2 0 1 0