R教程

R 向量

向量是最基本的 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:13
print(v)
# Creating a sequence from 6.6 to 12.6.
v <-6.6:12.6
print(v)
# if the final element specified does not belong to the sequence then it is discarded.
v <-3.8:11.4
print(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" 

访问向量元素

Vector 的元素是使用索引访问的。 [ ] 括号 用于索引。索引从位置 1 开始。在索引中给出负值会从结果中删除该元素。 TRUE FALSE01 也可用于索引。
# 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+v2
print(add.result)
# Vector subtraction.
sub.result <-v1-v2
print(sub.result)
# Vector multiplication.
multi.result <-v1*v2
print(multi.result)
# Vector division.
divi.result <-v1/v2
print(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+v2
print(add.result)
sub.result <-v1-v2
print(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" 
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4