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 ...
随机推荐
- leetcode907 Sum of Subarray Minimums
思路: 对于每个数字A[i],使用单调栈找到A[i]作为最小值的所有区间数量,相乘并累加结果.时间复杂度O(n). 实现: class Solution { public: int sumSubarr ...
- 【DSP开发】DSP COFF 与 ELF文件
本文介绍了C6000最新的v7.2或者之后的编译器如何支持ELF(EABI)和COFF-ABI格式,首先由ARM引入嵌入式(Embedded) EABI的介绍,之后比较了COFF-ABI和EABI的区 ...
- OpenCV.20190628
1.OpenCV提取ORB特征并匹配 - 简书.html(https://www.jianshu.com/p/420f8211d1cb) OpenCV提取ORB特征并匹配 - 简书.html(http ...
- linux中sleep详解实例
在linux编程中,有时候会用到定时功能,常见的是用sleep(time)函数来睡眠time秒:但是这个函数是可以被中断的,也就是说当进程在睡眠的过程中,如果被中断,那么当中断结束回来再执行该进程的时 ...
- pacemaker入门
原文链接:https://blog.csdn.net/a964921988/article/details/82628478 因为数据库部署在Linux上,需要做数据库集群实现高可用,而所有的Post ...
- CentOS7安装MySQL 密码方面
1.为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log. 可通 ...
- 【leetcode算法-简单】14. 最长公共前缀
[题目描述] 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","fl ...
- ubuntu 连接宽带
ubuntu 连接宽带 链接: https://blog.csdn.net/selous/article/details/55520765 主要命令 pppoeconf pon dsl-provide ...
- zookeeper集群搭建与升级
zookeeper 1.zookeeper功能 1-1.配置管理 集中管理配置文件实现服务治理 1-2.命名服务 如为了通过网络访问一个系统,我们得知道对方的IP地址,但是IP地址对人非常不友好,这个 ...
- 9.ssh登录慢
修改方式:使用root权限修改ssh的配置文件,vim /etc/ssh/sshd_config增加一行记录:UseDNS no修改GSSAPIAuthentication参数为 no,默认是yesP ...