数据结构
1.向量
向量有三种生成方式:vector函数、生成等差数列组成的数组、c函数。
如:
vector函数中第一部分为向量类型,如:“character”;第二部分为向量长度,如:length = 10:
> x <- vector("character",length = 10)
生成一个有四个元素,依次为1,2,3,4的整数型向量:
> x1 <- 1:4
c函数会将向量中元素强制转换为同一类型:
> x2 <- c(1,2,3,4)
> x3 <- c(TRUE,10,"a")
> x3
[1] "TRUE" "10" "a"
可以看出c函数将输入的第一个逻辑类型元素TRUE,第二个数值型元素10和第三个字符型元素"a"均转化为了字符型"TRUE"、“10"和"a”。
> x4 <- c("a","b","c")
> as.numeric(x4) # 将对象类型转化为数值型
[1] NA NA NA
Warning message:
NAs introduced by coercion
出现了警告信息:缺失值NA被引入,即x4中三个元素均转化为了缺失值NA,原因:R无法将字符转化为数字
> as.logical(x4) # 将对象类型转化为逻辑型
[1] NA NA NA
> as.character(x4) # 将对象类型转化为字符型
[1] "a" "b" "c"
> class(x1)
[1] "integer"
可以看出x1类型为整数型。
使用name函数给x1中添加名称,四个元素分别命名为a,b,c和d:
> x1 # 输出x1
[1] 1 2 3 4
> names(x1) <- c("a","b","c","d") # 对x中各元素进行命名
> x1 # 输出x1
a b c d
1 2 3 4
可以看出命名后,x1的输出结果与命名前不同,第一行为各元素名称,第二行为各元素的值
2.矩阵和数组
矩阵可以认为是向量+维度属性(nrow,ncol)。
矩阵有两种生成方式:使用matrix函数、将向量转化为矩阵。
数组可以是2维及以上,而矩阵只能2维。
使用array函数生成数组。
如:
生成一个3行2列的矩阵,nrow为行数,ncol为列数
> x <- matrix(nrow = 3,ncol = 2)
> x
[,1] [,2]
[1,] NA NA
[2,] NA NA
[3,] NA NA
可以看到,上述matrix函数生成了一个3行2列的空矩阵
按行填写只需要将方括号中的逗号位置改变,或者参照矩阵中方括号及数字的写法即可:
> x[,1]=c(1:3) # 第一列内容为1,2,3
> x[,2]=c(4:6) # 第二列内容为4,5,6
> x # 输出x
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
使用nrow函数和ncol函数可以查看对象的行数和列数:
> nrow(x)
[1] 3
> ncol(x)
[1] 2
生成一个2行3列的矩阵,矩阵中元素为1,2,3,4,5,6:
> x1 <- matrix(1:6,nrow = 3,ncol = 2)
> x1
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
可以看出,R默认按列将1~6填入矩阵。
在函数最后加入byrow=T这个参数,可以按行填入元素
> x2 <- matrix(1:6,nrow = 3,ncol = 2,byrow=T)
> x2
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
> dim(x1) # 输出x1的维度信息
[1] 3 2
可以看出,x1为3行2列的矩阵,输出结果中