向量:用于存储数值型、字符型或逻辑型数据的一维数组,只可以包含一种数据

向量的创建与运算

创建向量

# 创建简单向量
l <- c(2, 2, 1, 3, 8)
# [1] 2 2 1 3 8 # 创建一个1至5的向量
# : --> 至
# 1:5 --> 从1到5的5个整数
n <- 1:5
# [1] 1 2 3 4 5 # 创建向量,初始默认为逻辑值FALSE
v <- vector(length = 4)
# [1] FALSE FALSE FALSE FALSE

基本运算

# 切片运算
# 注意R中的序号1就表示第1个,而不是2个,要与python相区别
n[1:4]
# [1] 1 2 3 4 # 基本运算
# 等长
a1 <- l + n
# [1] 3 4 4 7 13
a2 <- l / n
# [1] 2.0000000 1.0000000 0.3333333 0.7500000 1.6000000 # 不等长
# 较少元素的向量在运算完一遍以后将会重新对应较多元素的向量中的剩余元素逐个再从头运算一次
n <- 1:5
l <- c(1,1,1,1,1,2,2,2,2,2)
a <- n * l
# [1] 1 2 3 4 5 2 4 6 8 10

两个方便创建向量的函数

seq函数 - 建立等差数列

# 建立从2到10,间隔为2的等差数列
n <- seq(from=2, to=10, by=2) # 或 n <- seq(2, 10, 2)
# [1] 2 4 6 8 10

rep函数 - 元素的重复

  • rep(起始值:终止值, times = 重复次数)  -->  将整一个向量重复n次
  • rep(起始值:终止值, each = 重复次数)  -->  将向量的每个元素依次重复n次

  若直接写数字,则是第一种times

# 把1到4赋值给x
x=1:4
# 把向量x重复2次
rep(x,2)
# 等价于 rep(1:4,2)
# [1] 1 2 3 4 1 2 3 4 # 把“male”和“female”和2各重复5次
# each=5
rep(c("male","female",2),each=5)
# 等价于 rep(c("male","female",2),c(5,5,5))
# 次数步长可自定义
"""
[1] "male" "male" "male" "male" "male" "female" "female" "female"
[9] "female" "female" "2" "2" "2" "2" "2"
""" # times=5
rep(c("male","female",2),5)
"""
[1] "male" "female" "2" "male" "female" "2" "male" "female"
[9] "2" "male" "female" "2" "male" "female" "2"
""" # 也可设置最大长度
# length.out也可以简写为length或len
rep(c("male","female",2),5,length.out=12)
"""
[1] "male" "female" "2" "male" "female" "2" "male" "female"
[9] "2" "male" "female" "2"
""" # each和times可同时使用
rep(c(3,5,7),each=3,times=2)
# [1] 3 3 3 5 5 5 7 7 7 3 3 3 5 5 5 7 7 7

删除向量

# rm(向量名)
rm(x)

访问向量中的元素

访问指定位置上的元素

  • 向量名[位置常量]
  • 向量名[位置常量1:位置常量2]
  • 向量名[c(位置常量列表)]
# 创建10个元素向量
v <- vector(length = 10)
# [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE # 访问第1个元素,赋值为1
v[1] <- 1
# [1] 1 0 0 0 0 0 0 0 0 0 # 访问第2~4个元素,赋值为2,3,4
v[2:4] <- c(2,3,4)
# [1] 1 2 3 4 0 0 0 0 0 0 # 生成一个取值为5~9的序列给向量w
w <- seq(5,9,1)
# [1] 5 6 7 8 9 # 访问第5~9和第10个元素,赋值为5~10
# c(w, 10)的访问方式,可以有效实现多个向量的合并
v[c(5:9,10)] <- c(w,10)
# [1] 1 2 3 4 5 6 7 8 9 10

利用位置向量访问指定位置上的元素

v
# [1] 1 2 3 4 5 6 7 8 9 10 # 直接指定位置
w <- (2:4)
# [1] 2 3 4
v[w]
# [1] 2 3 4 # 利用逻辑型位置向量来访问
w <- c(T,F,F,T,F,F,F,F,F,F)
# 访问v中位置向量w取值为TRUE位置上的元素
v[w]
# [1] 1 4

访问指定位置之外的元素

# 访问除了第1个元素以外的元素
v[-1]
# [1] 2 3 4 5 6 7 8 9 10 # # 访问除了2~4元素以外的元素
v[-(2:4)]
# [1] 1 5 6 7 8 9 10 v[-c(5:9,10)]
# [1] 1 2 3 4 w
# [1] TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
v[-w]
# [1] 2 3 4 5 6 7 8 9 10

R的数据结构--向量的更多相关文章

  1. 第二章 R语言数据结构

    R语言存储数据的结构包括:标量.向量.矩阵.数组.数据框和列表:可以处理的数据类型包括:数值型.字符型.逻辑型.复数型和原生型. 数据结构 向量 向量是用来存储数值型.字符型或逻辑型数据的一维数组.单 ...

  2. R的数据结构

    R语言中的数据结构包括标量.向量.矩阵.数组.列表以及数据框 目录 1 向量 2 矩阵 3 数据框 1 向量 向量是用于存储单一数据类型(数值.字符.逻辑值)的一维数组,示例如下: a <- c ...

  3. 【R】数据结构

    之前一阵子,在EDX上学习了R语言的一门基础课程,这里做个总结.这门课程主要侧重于R的数据结构的介绍,当然也介绍了它的基本的绘图手段. 工作空间相关 ls() ## character(0) rm(a ...

  4. R语言-数据结构

    1.向量 向量是用来存储数值型.字符型或逻辑性数据的一维数组,用函数c()创建向量 a <- c(1,2,5,6,4) b <- c("one","two&q ...

  5. R语言数据结构

    5. 数据结构 5.1 数据结构简介 (1)向量 一个向量的所有元素必须有相同的类型(模式) (2)列表 列表可以非同质的 列表可按位置索引:lst[[2]] 抽取子列表:lst[c(2,5)] 列表 ...

  6. R语言学习——向量,矩阵

    在R中,基本的数据结构有:向量,矩阵,数组,数据框,列表,因子,函数等. 向量:一系列同类型的有序元素构成. 向量是一维结构. 向量是R最简单的数据结构,在R中没有标量. 标量被看成1个元素的向量. ...

  7. Advanced R之数据结构

    看了几本R语言语法相关的书籍,感觉都不怎么好,在实际使用过程中仍然遇到很多难以理解的问题,后来看了Hadley Wickham的Advanced R,好多问题迎刃而解,今天重温了该书的第一章即数据结构 ...

  8. 2-2 R语言基础 向量

    #Vector 向量的三种创建方法,两个参数:类型,长度 > x <- vector("character",length=10)> x1 <- 1:4&g ...

  9. (2)特征点匹配,并求旋转矩阵R和位移向量t

    include头文件中有slamBase.h # pragma once // 各种头文件 // C++标准库 #include <fstream> #include <vector ...

随机推荐

  1. HOG算法总结

    1.HOG特征提取所针对的图像的尺寸是固定的.输入的图像应首先resize到这个尺寸. 2.尺寸的划分3个等级:window,block,cell window即输入的需要提取特征的图片大小.然后将w ...

  2. 最新 汇量科技java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿. 汇量科技等10家互联网公司的校招Offer,因为某些自身原因最终选择了 汇量科技.6.7月主要是做系统复习.项目复盘.Le ...

  3. MySQL索引解析(联合索引/最左前缀/覆盖索引/索引下推)

    本节内容: 1)索引基础 2)索引类型(Hash索引.有序数组.B+树) 3)索引的几个常见问题 1)联合索引 2)最左前缀原则 3)覆盖索引 4)索引下推 1. 索引基础 索引对查询的速度有着至关重 ...

  4. js延迟2秒执行事件

    有时候,我们在做修改回显数据时,就需要默认触发一些事件,但是由于数据没有很快从服务器中取回,所以就有延迟执行js事件 setTimeout(function () { // 这里就是处理的事件 }, ...

  5. linux文本处理三剑客(一)---grep

    在linux种有一句话,叫做一切皆文件.文件有个特点,它是个文本.它可以读.可以写,如果是二进制文件,它还能执行.这样的话,我们在使用linux的时候,多数时间都是要和各式各样文件打交道的.那么,熟悉 ...

  6. eXosip的register注册

    转载于:http://blog.sina.com.cn/s/blog_4868f98601018ioh.html 这个测试程序是从eXosip原有的测试程序改造的.原程序是tools 目录下的 sip ...

  7. [转] zookeeper 本地启动多节点

    1. zoo.cfg配置文件如下: # The number of milliseconds of each tick tickTime=2000 # The number of ticks that ...

  8. redis快速开始

    1 下载地址:http://redis.io/download 2 安装步骤: 3 # 安装gcc 4 yum install gcc 5 6 # 把下载好的redis‐5.0.3.tar.gz放在/ ...

  9. python-day4(正式学习)

    数据类型 不同种类的变量值用不同的数据类型来描述 数字类型 整形:int 定义方式: name(变量名)=(赋值符号)180(变量值) name=int(180) 当变量值为小数时,自动向下取整 运算 ...

  10. 15.Ansible安装与配置简单版

    Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用.安装软件.执行命令.配置和编排任务. 一.Ansible工作机制 从图中可 ...