R的数据结构

R语言中的数据结构包括标量、向量、矩阵、数组、列表以及数据框

目录

1 向量

向量是用于存储单一数据类型(数值、字符、逻辑值)的一维数组,示例如下:
a <- c(1,2,3,4,5) #数值
mode(a)

b <- c('a','b','c','d') #字符
mode(b)

c <- c(T,F,F,T) #逻辑
mode(c)

值得注意的是R的标量是向量的特例,是单一的元素的向量:

a <- 1
b <- 'c'
c <- T

虽然向量必须具有单一的数据类型,但是也存在着如下的情况:

a <- c('a',2,3) #数值转换为字符
mode(a)

b <- c(1,T,1,0) #TRUE转换为1,FALSE转换为0
mode(b)

R中内置了seq函数以快速生成有序的向量:

seq(from = 1,to = 50,by = 10) #缩写:seq(1,50,10)
seq(length = 10,from = 1,to = 40)

内置了rep函数以快速生成循环向量:

rep(1,10)
rep(c(1,5,6),3)
rep(1:4,each = 3)

内置了字母序列letters:

letters[2:15]

对于已经创建的向量,该如何操作向量?下面将演示几个比较常见的向量操作示例:

a <- c(1,4,6,8,2,3,5,6)

# 1.给向量命名
names(a) <- c('x1','x2','x3','x4','x5','x6','x7','x8')

# 2.提取数值4
a[2] #向量的元素下标取值是以1开始
a[[2]] #不含元素名
a[-2] #提取除了元素位置2的所有元素

# 3.提取数值4&8
a[c(2,4)] #提取多个元素使用元素下标向量

# 4.提取前4个元素
a[1:4] #提取连续的位置的元素

# 5.提取数值大于4的元素
a[a>4] #a>4:逻辑向量

# 6.向量的添加
b <- c(a,x9 = 5) #x9为元素名
b <- append(b,0,after = 4) #after确定添加在元素位置4后
names(b) <- c('x1','x2','x3','x4','x5','x6','x7','x8','x9','x10')
c <- c(a,b) #合并向量

# 7.向量排序
order(a) #输出排序后的各个向量位置
sort(a) #输出排序后的结果,等价于:a[order(a)]

# 8.which函数:返回元素坐标
which(a==4)
which(a>5) #等价于:a>5
which.max(a)
which.min(a)

最后将演示下R中的向量比较与运算,示例如下:

# 1.向量的比较
a <- runif(5,1,20)
b <- rnorm(5)
a>b #元素逐一比较
identical(a,b) #向量整体比较
all.equal(a,b)

a <- 1:3
b <- 1:5
a>b #长度不一致无法比较

# 2.向量的运算
a <- runif(5,1,20)
b <- rnorm(5)
a+b

a <- 1:3
b <- 1:5
a-b #长度不一致,a循环补充

posted @ 2016-04-23 17:58  稻粮谋  阅读(215)  评论(0编辑  收藏  举报