R语言学习笔记之语言入门基础

一、R语言基础

快速熟悉R语言中的基本概念,先入个门。

1、运算符

运算符含义例子
+1 + 1
-3 - 2
*3 * 2
/9 / 3
^(**)乘方2 ^ 3   2 ** 3
%%取余5 %% 2
%/%取整5 %/% 2

2、赋值符号

等号=a = 1三者等价:把1赋值给变量a
左箭头<−a <- 1
右箭头−>1 -> a

​3、基本数据类型

类型

数值型

"numeric"

class函数来探查数据的类型

数值型数据还可以分为:整数型(integer)和双精度型(double)

数字会被自动认为双精度型

声明使用的数据是整数型:在数值后面加上L

可以使用typeof函数查看数值型数据的具体类型

逻辑型

"logical"

大于(>)、大于或等于(>=)、

小于(<)、小于或等于(<=)、

等于(==)、不等于(!=)

 缺失值(NA)的数据类型也被归为逻辑型数据

字符型

"character"

所有文本类型的数据都属于字符型,附上双引号或单引号进行定义。

class("abc")

class("复旦大学")

可以使用“==”或“!=”符号来判断两个文本是不是完全一致

"hope" == "hope"

"hope" != "Hope"

因子型

"factor"

因子型,被视为把字符型数据以数值型保存的特殊格式

利用factor函数创造因子变量

a = factor("男")

as系列函数来进行强制类型转换,因子变量的字符形态数值形态

as.numeric(a)

as.character(a)

转换失败时,会返回缺失值NA,并输出警告

as.character(12345)

as.numeric("hello")

4、数据结构

向量

vector

c("你","我","他") 

length(c(1,3,4)) 

矩阵

matrix

matrix(1:9,nrow = 3,ncol = 3)

a = matrix(1:12,ncol = 3) #nrow和ncol参数可以只定义一个

dim(a)   #使用dim函数可以知道矩阵一共有几行几列

列表

list

a = list(3,TRUE,"hello")

数据框

data.frame

数据框是一种特殊的二维数据结构。同为二维数据结构,与矩阵不同的是,它的每一列可以视为一个向量,而每一行则可以视为一个列表。因此在一个数据框中可以有不同的属性(以列的形式存在)​,每一行则代表着一个观测实体。

library(pacman)

p_load(tidyfst)

as_dt(iris)   #利用了tidyfst包的as_dt函数,把iris转换为data.table格式

注意:<num>是numeric的缩写,<fctr>是factor的缩写)

5、程序流程控制

选择结构

在只有一条执行语句的时候,不需要写花括号

如果需要执行多个语句,则需要加上花括号。

保险起见,应该在所有if语句和else语句之后都加上花括号.

ifelse函数,如满足第一个条件,执行第一项;否则,执行第二项

for循环

希望跳过某一个循环,例如在i等于3的时候,我们不要打印。这时候就可以使用next语句。这个类似于其他语言中的continue用法。

while循环

还有一种特殊的循环模式叫作repeat,它相当于while(1){…}。也就是说,这个循环如果没有内置的停止机制,就会一直运行下去,可以在里面附加条件语句来终止运行。

6、函数

利用function函数来定义一个函数。

所有的R函数中,我们会把函数的最后一个执行结果作为函数的返回值。

4.0.0版本以后的R语言支持函数的便捷写法,可以使用一个反斜杠(\)来代表函数(function)。

也可以使用return函数显式地返回一个值。

二、管道操作符

管道操作符(%>%)是由magrittr包提供的方便操作符,能够让数据在函数之间快速传递,避免中间变量的生成,从而减少内存的占用。

管道操作符会让之前生成的结果作为第一个参数传递到后面的函数中,即f(x)与x %>% f()是等价的

mean(1:3)
1:3 %>% mean()

当数据不是作为第一个参数传递到后面的函数,这时候可以使用“.”作为前面数据的指代来放在后面的函数中


lm(Sepal.Length~Sepal.Width,data=iris)
iris %>% lm(Sepal.Length~Sepal.Width,data=.)

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

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

相关文章

计算机网络三张表(ARP表、MAC表、路由表)总结

参考&#xff1a; 网络三张表&#xff1a;ARP表, MAC表, 路由表&#xff0c;实现你的网络自由&#xff01;&#xff01;_mac表、arp表、路由表-CSDN博客 网络中的三张表&#xff1a;ARP表、MAC表、路由表 首先要明确一件事&#xff0c;如果一个主机要发送数据&#xff0c;那么必…

【Nomoto 船舶模型】

【Nomoto 船舶模型】 1. Nomoto 船舶模型简介2. 来源及发展历程3. 构建 一阶模型Nomoto 船舶模型3.1 C 实现3.2 Python 实现3.3 说明 5. 参数辨识方法5.1 基于最小二乘法的参数辨识5.2 数学推导5.3 Python 实现5.4 说明 4. 结论参考文献 1. Nomoto 船舶模型简介 Nomoto 模型是…

差分进化算法 (Differential Evolution) 算法详解及案例分析

差分进化算法 (Differential Evolution) 算法详解及案例分析 目录 差分进化算法 (Differential Evolution) 算法详解及案例分析1. 引言2. 差分进化算法 (DE) 算法原理2.1 基本概念2.2 算法步骤3. 差分进化算法的优势与局限性3.1 优势3.2 局限性4. 案例分析4.1 案例1: 单目标优化…

深入理解GPT底层原理--从n-gram到RNN到LSTM/GRU到Transformer/GPT的进化

从简单的RNN到复杂的LSTM/GRU,再到引入注意力机制,研究者们一直在努力解决序列建模的核心问题。每一步的进展都为下一步的突破奠定了基础,最终孕育出了革命性的Transformer架构和GPT大模型。 1. 从n-gram到循环神经网络(RNN)的诞生 1.1 N-gram 模型 在深度学习兴起之前,处理…

【JWT】jwt实现HS、RS、ES、ED签名与验签

JWT 实现 HS、RS、ES 和 ED 签名与验签 签名方式算法密钥类型签名要点验签要点HSHMAC-SHA256对称密钥- 使用 crypto/hmac 和对称密钥生成 HMAC 签名- 将 header.payload 作为数据输入- 使用同一密钥重新计算 HMAC 签名- 比较计算结果与接收到的签名是否一致RSRSA-SHA256公钥 …

地址栏信息location

获取信息 页面跳转 location.href当前地址栏信息 location.assign()设置跳转新的页面 location.replace() location.reload()刷新页面

程序员转型测试:解锁漏洞挖掘新旅程

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 程序…

StarRocks常用命令

目录 1、StarRocks 集群管理&配置命令 2、StarRocks 常用操作命令 3、StarRocks 数据导入和导出 1、StarRocks 集群管理&配置命令 查询 FE 节点信息 SHOW frontends; SHOW PROC /frontends; mysql -h192.168.1.250 -P9030 -uroot -p -e "SHOW PROC /dbs;"…

08-ArcGIS For JavaScript-通过Mesh绘制几何体(Cylinder,Circle,Box,Pyramid)

目录 概述代码实现1、Mesh.createBox2、createPyramid3、Mesh.createSphere4、Mesh.createCylinder 完整代码 概述 对于三维场景而言&#xff0c;二位的点、线、面&#xff0c;三维的圆、立方体、圆柱等都是比较常见的三维对象&#xff0c;在ArcGIS For JavaScript中我们知道点…

Linux中page、buffer_head、bio的关系

在Linux中&#xff0c;page、buffer_head、bio这三个概念紧密相关&#xff0c;共同构成了块设备I/O和内存管理的重要部分&#xff0c;它们的联系主要体现在以下方面&#xff1a; page与buffer_head 基于page构建&#xff1a;buffer_head通常是基于page来构建的&#xff0c;一…

直线拟合例子 ,岭回归拟合直线

目录 直线拟合,算出离群点 岭回归拟合直线&#xff1a; 直线拟合,算出离群点 import cv2 import numpy as np# 输入的点 points np.array([[51, 149],[122, 374],[225, 376],[340, 382],[463, 391],[535, 298],[596, 400],[689, 406],[821, 407] ], dtypenp.float32)# 使用…

SpringCloud两种注册中心

SpringCloud 基本概念 系统架构 我们之前做的所有的项目都属于单体架构&#xff0c;下面我们将要学习更适合大型项目的分布式架构 单体架构&#xff1a; 将业务的所有功能几种在一个项目中开发&#xff0c;打成一个包部署。 优点&#xff1a;架构简单、部署成本低 缺点&am…

SpringAI 搭建智能体(二):搭建客服系统智能体

在现代人工智能应用中&#xff0c;智能体&#xff08;Agent&#xff09; 是一个重要的概念&#xff0c;它的核心能力是自主性与灵活性。一个智能体不仅能够理解用户的需求&#xff0c;还能拆解任务、调用工具完成具体操作&#xff0c;并在复杂场景中高效运行。在本篇博客中&…

SVN客户端使用手册

目录 一、简介 二、SVN的安装与卸载 1. 安装&#xff08;公司内部一般会提供安装包和汉化包&#xff0c;直接到公司内部网盘下载即可&#xff0c;如果找不到可以看下面的教程&#xff09; 2. 查看SVN版本 ​编辑 3. SVN卸载 三、SVN的基本操作 1. 检出 2. 清除认证数据 3. 提交…

HTML 文本格式化详解

在网页开发中&#xff0c;文本内容的呈现方式直接影响用户的阅读体验。HTML 提供了多种文本格式化元素&#xff0c;可以帮助我们更好地控制文本的显示效果。本文将详细介绍 HTML 中的文本格式化元素及其使用方法&#xff0c;帮助你轻松实现网页文本的美化。 什么是 HTML 文本格…

衡量算法性能的量级标准:算法复杂度

今天开始数据结构的学习&#xff01;作为一大重点&#xff0c;拿出态度很重要&#xff0c;想要真实掌握&#xff0c;博客笔记自然少不了&#xff01;重点全部上色&#xff01;避免疏忽 下面我们从0基础开始学习今天的第一节&#xff01;不用担心看不懂&#xff0c;拒绝枯燥的理…

Spring Boot Starter介绍

前言 大概10来年以前&#xff0c;当时springboot刚刚出现并没有流行&#xff0c;当时的Java开发者们开发Web应用主要是使用spring整合springmvc或者struts、iBatis、hibernate等开发框架来进行开发。项目里一般有许多xml文件配置&#xff0c;其中配置了很多项目中需要用到的Be…

Java面试题2025-Spring

讲师&#xff1a;邓澎波 Spring面试专题 1.Spring应该很熟悉吧&#xff1f;来介绍下你的Spring的理解 1.1 Spring的发展历程 先介绍Spring是怎么来的&#xff0c;发展中有哪些核心的节点&#xff0c;当前的最新版本是什么等 通过上图可以比较清晰的看到Spring的各个时间版本对…

Linux 切换到 Root 用户的方式及差异详解

在 Linux 系统中&#xff0c;切换到 root 用户进行管理和操作是常见需求。不同的切换方法会影响环境变量、工作目录以及加载的配置文件。本文将介绍几种常用的切换方式及它们的特点。 切换到 Root 用户的主要方式 1. sudo su 这是通过 sudo 提权后调用 su 切换到 root 用户的…

虹科分享 | 汽车NVH小课堂之听音辨故障

随着车主开始关注汽车抖动异响问题&#xff0c;如何根据故障现象快速诊断异响来源&#xff0c;成了汽修人的必修课。 一个比较常用的方法就是靠“听”——“听音辨故障”。那今天&#xff0c;虹科Pico也整理了几个不同类型的异响声音&#xff0c;一起来听听看你能答对几个吧 汽…