R的数据结构--向量
向量:用于存储数值型、字符型或逻辑型数据的一维数组,只可以包含一种数据
向量的创建与运算
创建向量
# 创建简单向量
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的数据结构--向量的更多相关文章
- 第二章 R语言数据结构
R语言存储数据的结构包括:标量.向量.矩阵.数组.数据框和列表:可以处理的数据类型包括:数值型.字符型.逻辑型.复数型和原生型. 数据结构 向量 向量是用来存储数值型.字符型或逻辑型数据的一维数组.单 ...
- R的数据结构
R语言中的数据结构包括标量.向量.矩阵.数组.列表以及数据框 目录 1 向量 2 矩阵 3 数据框 1 向量 向量是用于存储单一数据类型(数值.字符.逻辑值)的一维数组,示例如下: a <- c ...
- 【R】数据结构
之前一阵子,在EDX上学习了R语言的一门基础课程,这里做个总结.这门课程主要侧重于R的数据结构的介绍,当然也介绍了它的基本的绘图手段. 工作空间相关 ls() ## character(0) rm(a ...
- R语言-数据结构
1.向量 向量是用来存储数值型.字符型或逻辑性数据的一维数组,用函数c()创建向量 a <- c(1,2,5,6,4) b <- c("one","two&q ...
- R语言数据结构
5. 数据结构 5.1 数据结构简介 (1)向量 一个向量的所有元素必须有相同的类型(模式) (2)列表 列表可以非同质的 列表可按位置索引:lst[[2]] 抽取子列表:lst[c(2,5)] 列表 ...
- R语言学习——向量,矩阵
在R中,基本的数据结构有:向量,矩阵,数组,数据框,列表,因子,函数等. 向量:一系列同类型的有序元素构成. 向量是一维结构. 向量是R最简单的数据结构,在R中没有标量. 标量被看成1个元素的向量. ...
- Advanced R之数据结构
看了几本R语言语法相关的书籍,感觉都不怎么好,在实际使用过程中仍然遇到很多难以理解的问题,后来看了Hadley Wickham的Advanced R,好多问题迎刃而解,今天重温了该书的第一章即数据结构 ...
- 2-2 R语言基础 向量
#Vector 向量的三种创建方法,两个参数:类型,长度 > x <- vector("character",length=10)> x1 <- 1:4&g ...
- (2)特征点匹配,并求旋转矩阵R和位移向量t
include头文件中有slamBase.h # pragma once // 各种头文件 // C++标准库 #include <fstream> #include <vector ...
随机推荐
- javaGuide_类文件结构
一 概述 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机.Java 语言通过字节码的方式,在一定程度上解决了传统解释型 ...
- Java反射:Web学习的灵魂
反射:Web学习的灵魂 我们从最初的 javac -HelloWorld.java,到面向对象部分,我们可以将Java代码在计算机中经历的阶段分为三部分:Scource源代码阶段 -- Class类对 ...
- 【贪心科技】贪心科技内容合伙人关于AI公司及创业的演讲笔记
贪心科技内容合伙人关于AI公司及创业的演讲笔记 视频 目录 一.投资角度对 AI 的两个基本认知 二.简单分析 AI 公司的两个纬度四个层面 三.AI 垂直行业应用的三点中美对比 四.给创业者的四个建 ...
- HanLP-命名实体识别总结
人名识别 在HanLP中,基于角色标注识别了中国人名.首先系统利用隐马尔可夫模型标注每个词语的角色,之后利用最大模式匹配法对角色序列进行匹配,匹配上模式的即为人名.理论指导文章为:<基于角色标注 ...
- ARC081E. Don't Be a Subsequence
$\newcommand{\dp}{\mathsf{dp}}$ $\newcommand{\next}{\mathsf{next}}$ Let $S$ be a string of lower cas ...
- (八)Spring 事务管理
目录 文章目录 @[toc] **`Spring`** 事务管理 `Api` 介绍之 **`PlatformTransactionManager`** 后记 #Spring 的事务管理 编程式事务管理 ...
- Python基础 第三章 使用字符串(3)字符串方法&本章小结
字符串的方法非常之多,重点学习一些最有用的,完整的字符串方法参见<Python基础教程(第三版)>附录B. 模块string,虽然风头已小,但其包含了一些字符串方法中没有的常量和函数,故将 ...
- 【Trie】Secret Message 秘密信息
[题目链接]: https://loj.ac/problem/10054 [题意] 我认为这个题目最难的是题意: 其实分了两种情况: 1.如果当前文本串匹配不完,那么答案的是:匹配过程中遇到的模式串结 ...
- shell习题第12题:批量创建用户
[题目要求] 用shell脚本实现如下需求 添加user_00 -- user_09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字母及数字,注意要把每个用户的密码记录到一个日志文 ...
- HTTP协议探究(四):TCP和TLS优化
一 复习与目标 1 复习 简单密码学.对称加密与非对称加密 数字签名.数字证书 SSL/TLS HTTPS = HTTP + SSL/TLS,SSL/TLS为HTTP提供了保密性.完整性和鉴别性 2 ...