R-向量.

向量

冒号运算符 创建一个从某个数到另一个数的数字序列
c函数 拼接数值和向量
vector函数 创建一个指定类型和长度的矢量 其内容可以为空

vector("numeric", 5)
## [1] 0 0 0 0 0
vector("complex", 5)
vector("logical", 5)
vector("chracter", 5)
vector("list", 5)

numeric(5)
## [1] 0 0 0 0 0
complex(5)
logical(5)
character(5)
# 不过list函数的工作方式有所区别

NULL是一个特殊的空值,不能与NA混淆

seq函数 创建序列
seq.int 和冒号运算符相同 但可指定步长
seq_len 创建从1到输入值的序列,输入值为0时很有用
seq_along 创建从1开始、长度为输入值的序列

seq.int(3, 12)
## [1] 3 4 5 6 7 8 9 10 11 12
seq.int(3, 12, 2)
## [1] 3 5 7 9 11

n <- 0
1:n
## [1] 1 0

seq_len(0)
## integer(0)

pp <- c("peter", "piper", "picked", "a", "peck")
for(i in seq_along(pp) print(pp[i]))
## [1] "peter"
## [1] "piper"
## [1] "picked"
## [1] "a"
## [1] "peck"

所有向量都有一个长度,以表明向量包含多少个元素
缺失值也会被计入长度
length函数
字符向量,长度为字符串的数目
nchar函数 计算字符串中字符数目

sn <- c("peter", "john", "joey")
length(sn)
## [1] 3
nchar(sn)
## [1] 5 4 4

可以为向量重新分配一个长度,不过很少这么做
如果向量的长度缩短,那么后面的值会被删除,如果长度增加,则缺失值会追加到末尾

name = value 在创建向量时为其指定名称
names函数指定名称或获取名称

c(apple=1, banana=2, "kiwi fruit"=3, 4)
## apple banana kiwi fruit
## 1 2 3 4

x <- 1:4
names(x) <- c("apple", "banana", "kiwi fruit", "")

索引 只访问向量中的部分或个别元素 用方括号实现
有多种索引方法

  1. 传入正数,从1开始索引(不是0)
  2. 传入负数,不显示某些位置
  3. 传入名称
x <- (1:5)^2
## [1] 1 4 9 16 25

x[c(1, 3, 5)]
x[c(-2, -4)]
x[c(T, F, T, F, T)]

names(x) <- c("one", "four", "nine", "sixteen", "twenty five")
x[c("one", "nine", "twenty five")]

不能混合使用正负数!!!
缺失索引所对应的值也是缺失值,正数和逻辑值可以使用NA索引,但是负数不可以使用NA索引

x[c(1, NA, 5)]
## one <NA> twenty five
## 1 NA 25

超出范围的下标值会返回NA
非整数下表默认向0舍入
不传递任何下标值将返回整个向量

which函数返回逻辑向量中为T的位置
which.min which(min(x))
which.max which(max(x))

which(x > 10)
## sixteen twentyfive
## 4 5

当对长度不同的向量做运算, 会有怎样的结果?

  1. 单个数字+向量, 向量中的每个元素都会和这个数字相加
  2. 两个向量相加, 循环较短向量以配合较长向量
    如果长向量长度不是短向量长的倍数,则会出现警告

rep函数 重复使用元素以创建矢量

rep(1:3, 3)
## [1] 1 2 3 1 2 3 1 2 3

rep(1:3, each = 3)
## [1] 1 1 1 2 2 2 3 3 3

rep(1:3, times = 1:3)
## [1] 1 2 2 3 3 3

rep(1:3, length.out = 5)
## [1] 1 2 3 1 2

rep.int

rep.int(1:3, 3)
## [1] 1 2 3 1 2 3 1 2 3

rep_len

rep_len(1:3, 5)
## [1] 1 2 3 1 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值