开发手册 欢迎您!
软件开发者资料库

R - 向量

R Vectors - 从基本到高级概念的简单简单步骤学习R编程语言,例如R安装,语言基础,语法,文字,数据类型,变量,函数,循环,决策,模块,数组,列表,向量,数学,矩阵,统计,图形,Excel数据,csv数据,概述,环境设置,操作员,字符串,因素,数据框,包,数据重塑,二进制文件,XML文件,Json文件,Web数据,数据库,饼图,条形图,箱线图,直方图,折线图,散点图,平均值,中位数和模式,线性回归,多元回归,Logistic回归,正态分布,二项分布,泊松回归,协方差分析,时间序列分析,非线性最小二乘,决策树,随机森林,生存分析,卡方检验。

向量是最基本的R数据对象,有六种类型的原子向量.它们是逻辑,整数,双精度,复数,字符和原始.

矢量创建

单元素矢量

即使只在R中写入一个值,它也会变成长度为1的向量,属于上述向量类型之一.

# Atomic vector of type character.print("abc");# Atomic vector of type double.print(12.5)# Atomic vector of type integer.print(63L)# Atomic vector of type logical.print(TRUE)# Atomic vector of type complex.print(2+3i)# Atomic vector of type raw.print(charToRaw('hello'))

当我们执行上面的代码时,它产生以下结果 :

[1] "abc"[1] 12.5[1] 63[1] TRUE[1] 2+3i[1] 68 65 6c 6c 6f

多元素向量

对数字数据使用冒号运算符

# Creating a sequence from 5 to 13.v <- 5:13print(v)# Creating a sequence from 6.6 to 12.6.v <- 6.6:12.6print(v)# If the final element specified does not belong to the sequence then it is discarded.v <- 3.8:11.4print(v)

当我们执行上面的代码时,它产生以下结果 :

[1]  5  6  7  8  9 10 11 12 13[1]  6.6  7.6  8.6  9.6 10.6 11.6 12.6[1]  3.8  4.8  5.8  6.8  7.8  8.8  9.8 10.8

使用序列(Seq.)运算符

# Create vector with elements from 5 to 9 incrementing by 0.4.print(seq(5, 9, by = 0.4))

当我们执行上面的代码时,它产生以下结果 :

[1] 5.0 5.4 5.8 6.2 6.6 7.0 7.4 7.8 8.2 8.6 9.0

使用c()函数

如果其中一个元素是一个字符,非字符值将被强制转换为字符类型.

# The logical and numeric values are converted to characters.s <- c('apple','red',5,TRUE)print(s)

执行时上面的代码,它产生以下结果 :

[1]"apple""red""5""TRUE"

访问向量元素

使用索引访问向量的元素. []括号用于索引.索引从位置1开始.在索引中给出一个负值会从结果中删除该元素. TRUE FALSE 0 1 也可以用于索引.

# Accessing vector elements using position.t <- c("Sun","Mon","Tue","Wed","Thurs","Fri","Sat")u <- t[c(2,3,6)]print(u)# Accessing vector elements using logical indexing.v <- t[c(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)]print(v)# Accessing vector elements using negative indexing.x <- t[c(-2,-5)]print(x)# Accessing vector elements using 0/1 indexing.y <- t[c(0,0,0,0,0,0,1)]print(y)

当我们执行上面的代码时,它产生以下结果 :

[1] "Mon" "Tue" "Fri"[1] "Sun" "Fri"[1] "Sun" "Tue" "Wed" "Fri" "Sat"[1] "Sun"

向量操作

向量算术

可以添加,减去两个相同长度的向量,相乘或者将结果作为矢量输出给出.

# Create two vectors.v1 <- c(3,8,4,5,0,11)v2 <- c(4,11,0,8,1,2)# Vector addition.add.result <- v1+v2print(add.result)# Vector subtraction.sub.result <- v1-v2print(sub.result)# Vector multiplication.multi.result <- v1*v2print(multi.result)# Vector division.divi.result <- v1/v2print(divi.result)

当我们执行上面的代码时,它会产生以下结果 :

[1]  7 19  4 13  1 13[1] -1 -3  4 -3 -1  9[1] 12 88  0 40  0 22[1] 0.7500000 0.7272727       Inf 0.6250000 0.0000000 5.5000000

向量元素回收

如果我们将算术运算应用于两个长度不等的向量,那么较短向量的元素将被循环以完成操作.

v1 <- c(3,8,4,5,0,11)v2 <- c(4,11)# V2 becomes c(4,11,4,11,4,11)add.result <- v1+v2print(add.result)sub.result <- v1-v2print(sub.result)

当我们执行上面的代码时,它产生以下结果 :

[1]  7 19  8 16  4 22[1] -1 -3  0 -6 -4  0

向量元素排序

向量中的元素可以使用 sort()

v <- c(3,8,4,5,0,11, -9, 304)# Sort the elements of the vector.sort.result <- sort(v)print(sort.result)# Sort the elements in the reverse order.revsort.result <- sort(v, decreasing = TRUE)print(revsort.result)# Sorting character vectors.v <- c("Red","Blue","yellow","violet")sort.result <- sort(v)print(sort.result)# Sorting character vectors in reverse order.revsort.result <- sort(v, decreasing = TRUE)print(revsort.result)

当我们执行在上面的代码中,它产生以下结果 :

[1]  -9   0   3   4   5   8  11 304[1] 304  11   8   5   4   3   0  -9[1] "Blue"   "Red"    "violet" "yellow"[1] "yellow" "violet" "Red"    "Blue"