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

向量的创建与运算

创建向量

# 创建简单向量
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. Git速成学习第五课:分支管理策略

    Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng.com/ 通常合并分支时,如果可能用Fast forward模式,但是在这种模式下,删除分支后,会丢掉分支 ...

  2. Python学习笔记——天气查询代码

    天气查询代码1 # 此程序无法运行,因为中国天气网的api接口被关闭了 import urllib.request import json import pickle #建立城市字典 pickle_f ...

  3. thinkPHP5 命名空间别名

    命名空间别名 对比 use app\index\model\User; 和 use model\User; 关键:\think\Loader::addNamespaceAlias('model','a ...

  4. luogu P1734 最大约数和 (01 背包)

    链接:https://www.luogu.org/problemnew/show/P1734 题面: 题目描述 选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大. 输入输出格 ...

  5. [转帖]三款Nehalem至强5500塔式服务器横评对决(4)

    三款Nehalem至强5500塔式服务器横评对决(4) http://tech.sina.com.cn/b/2009-12-14/05051172233_4.shtml 可以看到两路服务器的设置 基本 ...

  6. win7 配置 用户/系统DSN (解决plsql odbc导入器 DSN 没有选项)

    (2013-05-07 15:07:29) 转载▼ 标签: it   老笔记本越来越卡,最近重新做了win7的系统 从sql server中导出的 excel文件 准备通过plsql倒入的oracle ...

  7. Python Des加密与解密实现软件注册码、机器码

    原理 判断路径下是否存在识别文件,若存在就解密对比,若不存在就进入机器码注册: 获取系统C盘序列号作为识别ID,并添加随机数作为混淆,生成最终机器码. 将机器码发给软件开发者,开发者将机器码解密后,添 ...

  8. 13.lsof恢复删除的文件

    [root@temp ~]# lsof -p 5643COMMAND  PID   USER   FD   TYPE DEVICE  SIZE/OFF    NODE NAMEoracle  5643 ...

  9. windows下安装mongoDB(zip版)

    windows下安装mongoDB(zip版) 下面说明如何在win10下用zip包安装好mongoDB数据库 首先要先从网上下载mongoDB的zip包 http://dl.mongodb.org/ ...

  10. js判断变量是否为整数

    //返回false则不为整数数字,返回ture则反之 var isIntNumber=function(val){ if (isNaN(val) || Math.floor(val) != val) ...