2. 数据类型、向量、向量索引、向量修改、向量运算

news2024/12/23 5:42:16

课程视频链接:https://www.bilibili.com/video/BV19x411X7C6?p=1
本笔记参照该视频,笔记顺序做了些调整【个人感觉逻辑顺畅】,并删掉一些不重要的内容
系列笔记目录【持续更新】:https://blog.csdn.net/weixin_42214698/category_11393896.html

文章目录

  • 1.R中的数据类型、数据结构
  • 2.向量
  • 3.向量索引
    • (1)正负整数索引 (和c语言的数组一样的格式,只是r语言下标从1开始)
    • (2)逻辑向量索引
    • (3)名称索引
  • 4.向量修改
  • 5.向量运算
    • (1)两向量长度相等
    • (2)两向量长度不相等
    • (3)向量的逻辑运算
    • (4)向量运算函数

1.R中的数据类型、数据结构

数据类型:
数值型:数值可以用于直接结算,加减乘除
字符串型(character):可以进行连接、转换、提取等
逻辑型(logical):或真或假
日期型等

普通的数据结构:
向量,标量,列表,数组,多维数组。
8、 日期?

特殊数据结构:
perl中的哈希,python中的字典,c语言中的指针等。

R对象:
object, 他是指可以赋值给变量的任何事物,包括常量,数据结构,函数,甚至图形。
对象都拥有某种模式,描述了此对象是如何存储的,以及某个类。


2.向量

向量其实是用于存储数值型、字符型或逻辑型数据的一维数组。
用函数c来创建向量。c代表concatenate连接,也可以理解为收集collect,或者合并combine。
如:

x<-c(1,2,3,4,5)  
y<-c(“one”,“two”,“three”)  
z<-c(TRUE,T,F)  

注意:一个向量中所有数值的数据类型都必须是同一类型。

等差数列seq():
seq(from=1,to=100,by=2):生成1到100的公差为2的序列。
seq(from=1,to=100,length.out=10):生成1到100之间的10个数。
在这里插入图片描述

rep():
x<-c(1,2,3,4,5)
rep(x,5):将x变量的值重复5次。
可以用each来控制一个元素的重复次数
在这里插入图片描述

x<-c(1,2,3,4,5)
y<-c(6,7,8,9,10)
向量相加:x*2+y
输出向量x中值大于3的数值: x[x>3]
控制向量x中每个数的重复次数:rep(x,c(2,4,6,1,3))
在这里插入图片描述



3.向量索引

(1)正负整数索引 (和c语言的数组一样的格式,只是r语言下标从1开始)

x <- c(1:100)
x[1]:返回x向量中的第1个值。
x[-19]:输出除了第19个元素之外的所有元素。
x[c(4:18)]:输出第4到18个元素。
x[c(1,23,45)]:输出第1、23、45个元素。
注意:不能同时有正负索引。

(2)逻辑向量索引

y <- c(1:10)
y[c(T,F,T,T,F,F,T,T,T,F)]:输出逻辑值为真的元素 。注意:数组大小为10时,如果有11个逻辑值,那么多出的部分会显示NA 。
y[c(T)]:所有元素为真,输出所有元素。
y[c(T,F)]:按照T,F循环判断输出。结果为(1 3 5 7 9)
y[y>5 & y<9]:输出向量y中大于5小于9的元素。(结果为6 7 8)
在这里插入图片描述


%in%:表示元素是否在向量中。
如:
z <- c(“one”,“two”,“three”,“four”,“five”)
“one” %in% z:返回TRUE。
z %in% c(“one”,“two”):判断z中元素是否在向量(“one”,“two”)中。(返回TRUE TRUE FALSE FALSE FALSE)

(3)名称索引

可以使用names函数为【向量的每个元素】添加名称
如:
y <- c(1:10)
在这里插入图片描述

输出的y有两行,一行是元素名称,称为属性;一行是元素值,称为value。
可以通过每个元素的name访问它的值。 如:y[“two”]:输出对应的值2。



4.向量修改

在这里插入图片描述


y   <-   y[-c(1:3)]:删除向量中第1到3的元素。

y[-c(1:3)] 代表 输出除了第1~3个元素之外的所有元素



5.向量运算

(1)两向量长度相等

"*"为乘法运算
"**"为幂运算
"%%"求余运算
"%/%"为整除运算
在这里插入图片描述

(2)两向量长度不相等

长向量的长度必须是短向量长度的整倍数,否则,报错。运算时短向量被循环使用。
在这里插入图片描述

(3)向量的逻辑运算

==:一一判断两个向量的元素是否相等。
在这里插入图片描述

(4)向量运算函数

数学函数:
x <- c(1:6)
y <- c(-2.13,3.1415)

abs(x):返回向量x的绝对值。  
sqrt(x):取平方根。  
log(x,base=2):取对数,base为底数。不加底数,默认为自然对数。  常见的以10为底的对数直接写log10(x)。  
exp(x):计算以自然常数e为底的指数。 
 
ceiling(y):不小于y的最小整数。  
floor(y):不大于y的最小整数。  

trunc(y):返回整数部分。  
round(y,digits=2):四舍五入,digits表示要保留的小数位数。默认取整。  
signif(y,digits=2):四舍五入,保留有效数字,digits表示保留的有效数字位数。  
sin(x):求正弦。  
cos(x):求余弦。

统计函数:
vec <- 1:100
sum(vec):求和。
max(vec):求最大值。
min(vec):求最小值。
range(vec):返回最小值和最大值。
mean(vec):返回平均值。
var(vec):返回向量方差。
sd(vec):返回向量的标准差。
prod(vec):返回向量连乘的积。
median(vec):计算中位数。
quantile(vec):计算分位数。
在这里插入图片描述

有时候不仅关注向量中的值,还关注向量中的位置,也就是索引值。
这时候可以时候which系列的函数,其返回的不是具体值,而是索引值【也就是在向量的位置】
t <- c(1,4,2,5,7,9,6)
which.max(t):返回最大值的索引值。
which.min(t):返回最小值的索引值。
which(t==7):返回t向量中值为7的元素的索引值。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/147235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习】Q learning、Q-learning for continuous actions、关于深度学习的猜想

文章目录一、Q learning评估状态值函数Vπ(s)MCTDdouble DQNdueling DQNprioritized replymulti-stepnoisy netdistributionalrainbow二、Q-learning for continuous actions三、关于深度学习的猜想一、Q learning value-based的方法&#xff0c;评论家不会直接决定行动。给定…

低度酒“百家争鸣”,谁能俘获年轻人的芳心?

【潮汐商业评论/原创】随着消费升级和女性消费力量的崛起&#xff0c;“她经济”逐渐成为新零售消费环境下一道“靓丽风景线”。女性消费者的消费偏好和消费习惯&#xff0c;正在促使低度酒、食品、服装、护肤、美妆、家居、育儿等行业发生新的变革。特别是酒水市场&#xff0c…

Spring Boot学习篇(八)

Spring Boot学习篇(八) 1.thymeleaf模板引擎使用篇(二) 1.1 配置通过地址栏直接访问html页面 1.1.1 在zlz包下创建filter包,其目录结构如下所示 1.1.2 在filter包下创建HTMLFilter类,其内容如下所示 package com.zlz.filter;import javax.servlet.*; import javax.servlet.…

启用分页机制

前言 本博客记录《操作系统真象还原》第五章第2个实验的操作~ 实验环境&#xff1a;ubuntu18.04VMware &#xff0c; Bochs下载安装 实验内容&#xff1a;启动内存分页机制 实验原理&#xff1a;内存分页机制 前置知识 前置知识可食用内存分页机制 代码 include/boot.in…

UML类图入门实战

介绍 UML——Unified modeling language UML (统一建模语言)&#xff0c;是一种用于软件系统分析和设计的语言工具&#xff0c;它用于帮助软件开发人员进行思考和记录思路的结果。 UML 本身是一套符号的规定&#xff0c;就像数学符号和化学符号一样&#xff0c;这些符号用于描述…

设计模式学习(二):Adapter适配器模式

一、什么是Adapter模式我们先举个例子&#xff1a;如果想让额定工作电压是直流12V的笔记本电脑在交流220V的电源下工作&#xff0c;应该怎么做呢?通常&#xff0c;我们会使用适配器&#xff0c;将家庭用的交流220V电压转换成我们所需要的直流12V电压。这就是适配器的工作&…

Hive数据仓库简介与安装

文章目录Hive数据仓库简介及安装配置一、数据仓库简介1. 什么是数据仓库2. 数据仓库的结构1&#xff09;数据源2&#xff09;数据存储与管理3&#xff09;OLAP服务器4&#xff09;前端工具3. 数据仓库的数据模型1&#xff09;星状模型2&#xff09;雪花模型二、Hive简介1. 什么…

【踩坑总结】解决pycharm下载依赖一直失败的问题

目录前言正文问题复现问题本质解决方案补充总结检查是否安装成功下载的依赖存在哪总结前言 pycharm下载依赖失败这个问题对于我来说已经是个老生常谈的问题&#xff0c;与之共交手三次。 首次交锋是在大二利用 树莓派 做图像采集传输时&#xff0c;在树莓派的ubantu上使用pyt…

docker 容器使用 loki 插件收集日志

相关资料: The log-opts in the /etc/docker/daemon.json is not relaoded - General Discussions - Docker Community ForumsRecently I want to use loki-log-driver to ship logs to the loki server. The docker-deamon is controlled by systemd. The /etc/docker/daemon…

Day2 Spring

1 BeanFactory 与ApplicationContext的关系BeanFactory与ApplicationContext的关系BeanFactory是Spring的早期接口&#xff0c;称为Spring的Bean工厂&#xff0c;ApplicationContext是后期更高级接口&#xff0c;称之为Spring 容器;ApplicationContext在BeanFactory基础上对功能…

Pytorch 多层感知机

一、什么是多层感知机 多层感知机由感知机推广而来&#xff0c;最主要的特点是有多个神经元层&#xff0c;因此也叫深度神经网络(DNN: Deep Neural Networks)。 二、如何实现多层感知机 1、导入所需库并加载fashion_mnist数据集 %matplotlib inline import torch import to…

java弹幕视频网站源码

简介 Java基于ssm的弹幕视频系统&#xff0c;用户注册后可以上传视频进行投稿&#xff0c;也可以浏览视频发送弹幕&#xff0c;在个人中心管理视频、管理弹幕、管理评论等。管理员可以管理视频弹幕评论&#xff0c;查看统计图。 演示视频&#xff1a; https://www.bilibili.c…

CVE-2020-0014 Toast组件点击事件截获漏洞

文章目录前言漏洞分析组件源码触摸属性漏洞利用POC分析漏洞复现漏洞修复总结前言 Toast 组件是 Android 系统一个消息提示组件&#xff0c;比如你可以通过以下代码弹出提示用户“该睡觉了…”&#xff1a; Toast.makeText(this, "该睡觉了…", Toast.LENGTH_SHORT)…

C语言文件操作-从知识到实践全程

目录 引入 文件的打开和关闭 文件如何使用程序来打开? 绝对路径需要转义字符 fopen函数 fclose函数 文件的打开方式(fopen第二参数const char* mode): 文件的顺序读写 fgetc和fputc的使用 fputc fgetc fgets和fputs的使用 fputs fgets perror的使用 fprint…

哪些程序员适合自由工作?(附平台推荐)

在早些时候进行远程办公&#xff0c;接私活或者跨国进行编程&#xff0c;赚点外快等也不是什么奇怪的事情。但是那时候没有人想到会把这些工作完全变成自己的主要业务——也就是我们说的自由工作。也不知道是哪一个第1个吃了螃蟹的人发现自由工作还不错&#xff0c;于是经过后面…

【JavaScript】DOM 学习总结-基础知识

获取元素方法&#xff1a; // 获取三个非常规的标签 console.log(document.documentElement) console.log(document.head) console.log(document.body)通过id/class获取&#xff1a;getElementById / getElementsByClassName // 获取常规的用id,class,tag var boxdocument.g…

Android 自定义Activity的主题

一. 前言 当在某个app中做一个新界面时, 我们要考虑一下主题风格相符合一致. 本篇文章讲解的是,如何新创建的Activity 与整个app主题符合, 特别是状态栏的颜色需要和这个app的状态栏颜色保持一致. 在读本篇文章之前, 可以移步一下笔者之前写的文章:Android style&#xf…

代码随想录算法训练营第十一天字符串 java :20. 有效的括号 1047. 删除字符串中的所有相邻重复项 150. 逆波兰表达式求值

文章目录Leetcode 20. 有效的括号题目详解数据结构 双端队列(deque)Deque有三种用途&#xff1a;思路报错Ac代码Leetcode1047. 删除字符串中的所有相邻重复项题目详解数据结构 ArrayDeque类思路AC代码150. 逆波兰表达式求值题目详解报错难点AC代码收获Leetcode 20. 有效的括号 …

系分 - 系统设计

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录系分 - 系统设计考点摘要系统设计软件设计软件架构设计结构化设计概要设计详细设计处理流程设计流程工作流活动及其所有者工作项工作流管理系统WFMS的基本功能WFMS的组成WRM流程设计工具用户界面设计/人机…

python算法与数据结构1-算法、数据结构、链表

目录1、算法的概念1.1 举例&#xff1a;1.2 算法的五大特性&#xff1a;1.3 时间复杂度1.4 空间复杂度2、数据结构2.1 内存的存储结构2.2 数据结构的分类2.3 顺序表存储方式3、链表3.1链表实现3.2链表的方法3.3链表增加节点3.4链表删除节点3.5链表总结1、算法的概念 算法与数据…