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 模型是…

深入理解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; 目录 程序…

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

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

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

目录 直线拟合,算出离群点 岭回归拟合直线&#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)# 使用…

SVN客户端使用手册

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

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

今天开始数据结构的学习&#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的各个时间版本对…

浅谈Redis

2007 年&#xff0c;一位程序员和朋友一起创建了一个网站。为了解决这个网站的负载问题&#xff0c;他自己定制了一个数据库。于2009 年开发&#xff0c;称之为Redis。这位意大利程序员是萨尔瓦托勒桑菲利波(Salvatore Sanfilippo)&#xff0c;他被称为Redis之父&#xff0c;更…

element tbas增加下拉框

使用Tabs 标签页的label插槽&#xff0c;嵌入Dropdown 下拉菜单&#xff0c;实现Tabs 标签页增加下拉切换功能 Tabs 标签页 tab-click"事件"&#xff08;这个事件当中到拥有下拉框的tab里时&#xff0c;可以存一下Dropdown 第一个菜单的id&#xff0c;实现点击到拥有…

SQL-leetcode—1179. 重新格式化部门表

1179. 重新格式化部门表 表 Department&#xff1a; ---------------------- | Column Name | Type | ---------------------- | id | int | | revenue | int | | month | varchar | ---------------------- 在 SQL 中&#xff0c;(id, month) 是表的联合主键。 这个表格有关…

【Address Overfitting】解决过拟合的三种方法

目录 1. 收集更多数据实践方法&#xff1a;适用场景&#xff1a;优缺点&#xff1a; 2. 特征选择方法介绍&#xff1a;实践示例&#xff1a;适用场景&#xff1a;优缺点&#xff1a; 3. 正则化&#xff08;Regularization&#xff09;正则化类型&#xff1a;实践示例&#xff1…

面向通感一体化的非均匀感知信号设计

文章目录 1 非均匀信号设计的背景分析1.1 基于OFDM波形的感知信号1.2 非均匀信号设计的必要性和可行性1.2 非均匀信号设计的必要性和可行性 3 通感一体化系统中的非均匀信号设计方法3.1 非均匀信号的设计流程&#xff08;1&#xff09;均匀感知信号设计&#xff08;2&#xff0…

【深度学习】搭建PyTorch神经网络进行气温预测

第一步 数据加载与观察 ①导包 import numpy as np import pandas as pd import matplotlib.pyplot as plt import torch import torch.optim as optim import warnings warnings.filterwarnings("ignore") %matplotlib inline ②加载数据 features pd.read_csv(…

ESP8266 NodeMCU与WS2812灯带:实现多种花样变换

在现代电子创意项目中&#xff0c;LED灯带的应用已经变得极为广泛。通过结合ESP8266 NodeMCU的强大处理能力和FastLED库的高效功能&#xff0c;我们可以轻松实现多达100种灯带变换效果。本文将详细介绍如何使用Arduino IDE编程&#xff0c;实现从基础到高级的灯光效果&#xff…

pycharm踩坑(1)

由于我重装系统&#xff0c;导致我的pycharm需要进行重装&#xff0c;因此我觉得需要记录一下&#xff0c;pycharm的正确使用方法 汉化 汉化很重要&#xff0c;除非你从小就双语教学&#xff0c;不然你看着那些英文就是会消耗大量的精力 我使用的pycharm版本是pycharm-commun…