超级入门:R 语言的 5 种基本数据类型

news2024/11/24 14:35:54

一、R语言简介

R语言是一种用于统计计算和绘图的编程语言,它是由新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 开发的。R语言支持向量和矩阵计算,因此也可以用于数值分析和线性代数。它主要应用于数据分析、统计学习、数据挖掘、数据可视化等领域。

R语言的优势是它具有很好的可重复性和可扩展性。通过使用扩展包(packages),用户可以轻松地扩展R语言的功能,并在开源社区中共享代码。R语言也有很好的图形界面,比如Rstudio,使得数据分析和可视化更加直观和便捷。

R语言的语法类似于英语,易于学习和阅读。它具有许多内置的函数和数据类型,包括向量、矩阵、数组、数据框(data-frame)和列表。对于数据处理和数据分析,R语言的操作和函数库非常丰富。除此之外,R语言还支持其他编程语言的集成,如 Python 和 C++ 等。

二、R的安装

我个人比较喜欢R语言自带的分析界面,没有安装Rstudio,我用的R版本是4.2.1

链接:https://pan.baidu.com/s/1w-Efrm5LDNiQLUIu0o9COg 
提取码:6666

上面是百度网盘的下载地址。下载完成后,直接双击exe文件。

  1. 选择语言
    在这里插入图片描述

  2. 下一步
    在这里插入图片描述

  3. 选择安装路径
    在这里插入图片描述

  4. 下一步
    在这里插入图片描述

  5. 直接选择默认,下一步
    在这里插入图片描述

  6. 如果需要快捷栏启动就勾上
    在这里插入图片描述

  7. 安装成功
    在这里插入图片描述

三、数据基础

3.1 常用数据类型

3.1.1 向量(vector)

向量适用于存储数值类型、字符型或逻辑型数据的一维数组。

  1. 向量语法
vector_name <- c(element1, element2, element3, ...)
  1. 创建向量对象
# 创建数值型向量
age <- c(25, 30, 35, 40, 45)

# 创建字符型向量
name <- c("John", "Joe", "Alex", "Mary", "Lucy")

# 创建逻辑型数据
status <- c(TRUE, TRUE, FALSE, TRUE, FALSE)
  1. 修改向量对象
# 修改数值型向量
age[3] <- 36
age
# 输出:25 30 36 40 45

# 修改字符型向量
name[5] <- "Lily"
name
# 输出:"John" "Joe" "Alex" "Mary" "Lily"

# 修改逻辑向量
status[4] <- FALSE
status
# 输出:TRUE  TRUE FALSE FALSE FALSE

3.1.2 列表(list)

列表(list) 是一种非常有用的数据类型,它可以存储任意数量和类型的对象,并且可以使用一组多维索引访问它们。列表可以包含向量、矩阵、数据框、其它列表等数据类型。

  1. 创建列表对象

使用 list() 函数可以创建一个新的空列表对象。可以使用 [[ ]] 或 $ 索引符号将一个或多个对象添加到列表中。

# 创建空的列表对象
my_list <- list()

# 添加元素到列表对象
my_list[[1]] <- c(1, 2, 3)
my_list[["second"]] <- matrix(1:9, nrow = 3)
my_list$third <- c(2,4,6)
  1. 访问列表对象

使用 [[ ]] 或 $ 索引符号可以访问列表对象中的元素。以下是访问上面列表对象中的元素的示例 R 代码:

# 使用 [[]] 索引访问列表中的元素
my_list[[1]]
# 输出:1 2 3

# 使用 $ 符号访问具有自定义名称的列表中的元素
my_list$second
# 输出:
#      [,1] [,2] [,3]
# [1,]    1    4    7
# [2,]    2    5    8
# [3,]    3    6    9
  1. 删除列表元素

可以使用 NULLlist() 函数来删除列表中的元素。

# 删除第二个元素
my_list[[2]] <- NULL

# 使用空的列表删除第一个元素
my_list[[1]] <- list()

# 重新打印列表对象以查看结果
my_list
# 输出:
# [[1]]
# list()

# $third
# [1] 1 5 7

列表可以搭配任何基本数据类型, 再加上灵活的索引途径,可以让用户更好地掌控复杂的数据结构,从而更方便地进行数据处理。

3.1.3 数组(array)

数组是一种可以存储多维数据的数据类型,多维数据意味着除了行和列之外还可以有多个维度。可以使用 array() 函数来创建一个新数组对象,该函数接受一个向量作为数据输入,以及一个用于指定各个维度大小的整数向量。

  1. 创建数组对象

使用 array() 函数可以创建一个新的数组对象。 以下是创建一个名为 arr 的数组的示例 R 代码:

# 创建一个 3x4x2 的数组 (行x列x维度)
arr <- array(data = 1:24, dim = c(3, 4, 2))

# 打印数组对象
arr
# 输出
# , , 1
# 
#      [,1] [,2] [,3] [,4]
# [1,]    1    4    7   10
# [2,]    2    5    8   11
# [3,]    3    6    9   12
# 
# , , 2
# 
#      [,1] [,2] [,3] [,4]
# [1,]   13   16   19   22
# [2,]   14   17   20   23
# [3,]   15   18   21   24
  1. 访问数组对象

可以使用 [ ] 索引符号访问数组对象中的元素。上面创建的数组对象中,第一个维度的指针先移动,然后是第二个维度的指针,最后是第三个维度的指针。以下是访问上面数组对象中的元素的示例 R 代码:

# 访问第1个元素
arr[1, 1, 1]
# 输出:1

# 访问第2个元素
arr[1, 2, 1]
# 输出:4

# 访问第11个元素
arr[2, 3, 1]
# 输出:8

# 访问最后一个元素
arr[3, 4, 2]
# 输出:24
  1. 修改数组对象

使用 [ ] 索引符号来修改数组对象中的元素。以下是在数组对象中修改元素的示例 R 代码:

# 修改第1个元素为2
arr[1, 1, 1] <- 2

# 修改第2个元素为5
arr[1, 2, 1] <- 5

# 打印修改后的数组对象
arr
# 输出
# , , 1
# 
#      [,1] [,2] [,3] [,4]
# [1,]    2    5    7   10
# [2,]    2    5    8   11
# [3,]    3    6    9   12
# 
# , , 2
# 
#      [,1] [,2] [,3] [,4]
# [1,]   13   16   19   22
# [2,]   14   17   20   23
# [3,]   15   18   21   24

3.1.4 矩阵(Matrix)

矩阵(Matrix) 是以二维方式存储的数据类型,每列中的数据类型必须相同。矩阵可以看作是一个具有行和列的数据表格,其中每个单元格存放着一个数值。在 R 语言中,可以使用 matrix() 函数来创建矩阵对象,该函数接受一个向量作为输入数据,以及表示行和列数的整数向量。

  1. 创建矩阵对象

使用 matrix() 函数可以创建一个新的矩阵对象。以下是创建一个名为 mat 的矩阵的示例 R 代码:

# 创建一个 3x3 的矩阵
mat <- matrix(data = c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3)

# 打印矩阵对象
mat
# 输出
#      [,1] [,2] [,3]
# [1,]    1    4    7
# [2,]    2    5    8
# [3,]    3    6    9

在上面的例子中,我们使用 matrix() 函数创建了一个3x3的矩阵对象,其中 data 参数指向一个包含1到9的数字向量,nrowncol 参数分别是3,表示行和列的大小。

  1. 访问矩阵对象

使用 [ ] 索引符号访问矩阵对象中的元素。以下是访问上面矩阵对象中的元素的示例 R 代码:

# 访问第1行第2列的元素
mat[1, 2]
# 输出:4

# 访问第3行的所有元素
mat[3, ]
# 输出:3 6 9

# 访问第2列的所有元素
mat[, 2]
# 输出:4 5 6
  1. 修改矩阵对象

使用 [ ] 索引符号来修改矩阵对象中的元素。以下是在矩阵对象中修改元素的示例 R 代码:

# 修改第1行第2列的元素为10
mat[1, 2] <- 10

# 修改第3行的所有元素为0
mat[3, ] <- c(0, 0, 0)

# 打印修改后的矩阵对象
mat
# 输出
#      [,1] [,2] [,3]
# [1,]    1   10    7
# [2,]    2    5    8
# [3,]    0    0    0

在上面的例子中,我们使用 [ ] 索引符号将第一个元素修改为10,将第三行的所有元素修改为0,然后打印修改后的矩阵对象。

矩阵是在 R 语言中最常用、最基本的数据类型之一,因为许多常见的数据分析和统计建模方法都涉及矩阵操作。

3.1.5 数据框(data.frame)

数据框是 R 语言中一种常用的数据类型,是一种表格形式的数据结构,其中每个列可以包含不同的数据类型,但必须保证每个列的元素个数相同。数据框经常用于在 R 语言中进行数据操作和数据分析,包含了多个观测值和变量。可以使用 data.frame() 函数来创建数据框对象,该函数需要指定每个列的名字和它们的值。

  1. 创建数据框对象

使用 data.frame() 函数可以创建一个新的数据框对象。以下是创建一个名为 df 的数据框的示例 R 代码:

# 创建数据框
df <- data.frame(
  name = c("John", "Joe", "Alex", "Mary", "Lucy"),
  age = c(25, 30, 35, 40, 45),
  height = c(1.75, 1.80, 1.70, 1.68, 1.72)
)

# 打印数据框对象
df
# 输出
#    name age height
# 1  John  25   1.75
# 2   Joe  30   1.80
# 3  Alex  35   1.70
# 4  Mary  40   1.68
# 5  Lucy  45   1.72
  1. 访问数据框对象

数据框可以使用 $ 符号[ ][[ ]] 索引符号进行访问,其中 $ 符号用于访问列名,不需要指定行数。以下是访问上面示例数据框对象中的元素的示例 R 代码:

# 使用 $ 符号访问列 'name'
df$name
# 输出:John Joe Alex Mary Lucy

# 使用 [ ] 符号访问前三行
df[1:3, ]
# 输出:
#    name age height
# 1  John  25   1.75
# 2   Joe  30   1.80
# 3  Alex  35   1.70

# 使用 [ ] 符号访问第二列
df[, 2]
# 输出:25 30 35 40 45

# 使用 [[ ]] 符号访问列 'height'
df[["height"]]
# 输出:1.75 1.80 1.70 1.68 1.72
  1. 修改数据框对象

使用 $ 符号[ ] 索引符号来修改数据框中的元素。以下是修改上面数据框对象中的元素的示例 R 代码:

# 使用 $ 符号修改列 'age'
df$age <- c(26, 31, 36, 41, 46)

# 使用 [ ] 符号修改第一行的所有列
df[1, ] <- c("Tom", 30, 1.90)

# 打印修改后的数据框对象
df
# 输出:
#   name age height
# 1  Tom  30    1.9
# 2  Joe  31    1.8
# 3 Alex  36    1.7
# 4 Mary  41    1.68
# 5 Lucy  46    1.72

在上面的例子中,我们使用 $ 符号将第一个元素修改为 “Tom”,使用 [ ] 索引符号将第一行的所有列修改为一组新的值,然后打印修改后的数据框对象。

数据框是 R 语言中一种非常实用的数据类型,尤其在数据分析和统计建模中非常常用,因为它可以用于存储和操作特定类型的不同数据。

3.2 常用元素类型

3.2.1 数值型 (numeric)

数值型(numeric) 是一种表示实数或浮点数的 R 语言数据类型。以下是创建和使用数字向量的示例代码:

# 创建数字向量
x <- c(1, 2.5, 3.7, 5.2)

# 打印数字向量
x
# 输出:1.0 2.5 3.7 5.2

# 计算向量的平均值和标准差
mean(x)
# 输出:3.1

sd(x)
# 输出:1.619327

在上面的示例中,我们使用 c() 函数来创建一个数字向量,然后使用 mean() 函数和 sd() 函数计算向量的平均值和标准差。

3.2.2 整型 (integer)

整型(integer) 是一种表示整数的 R 语言数据类型。以下是创建和使用整数向量的示例代码:

# 创建整数向量
y <- c(2L, 4L, 6L, 8L)

# 打印整数向量
y
# 输出:2 4 6 8

# 计算向量的和
sum(y)
# 输出:20

# 计算乘积
prod(y)
# 输出:384

在上面的示例中,我们使用 c() 函数来创建一个整数向量,由于每个元素后都跟着一个 L 表示这是一个整数型,然后使用 sum() 函数和 prod() 函数计算向量的和和乘积。

3.2.3 字符串 (character)

字符串(character) 是一种表示文本字符的 R 语言数据类型。以下是创建和使用字符串的示例代码:

# 创建字符串变量和字符串向量
name <- "Alice"
gender <- "female"
myString <- c("Hello", "World", "!")

# 打印字符串变量和向量
name
# 输出:"Alice"

gender
# 输出:"female"

myString
# 输出:"Hello" "World" "!"

在上面的示例中,我们使用双引号或单引号来表示一个字符串,也可以使用 c() 函数来创建一个字符串向量。

3.2.4 逻辑型 (logical)

逻辑型(logical) 是一种表示真或假的 R 语言数据类型。以下是创建和使用逻辑型的示例代码:

# 创建逻辑型变量和逻辑型向量
a <- TRUE
b <- FALSE
myLogical <- c(TRUE, TRUE, FALSE, FALSE)

# 打印逻辑型变量和向量
a
# 输出:TRUE

b
# 输出:FALSE

myLogical
# 输出:TRUE TRUE FALSE FALSE

在上面的示例中,我们使用TRUEFALSE关键字来分别表示真和假,也可以使用 c() 函数来创建一个逻辑型向量。

3.2.5 复数型 (complex)

复数型(complex) 是一种表示实部和虚部均为数值的复数的 R 语言数据类型。以下是创建和使用复数的示例代码:

# 创建复数变量和复数向量
a <- 1 + 2i

3.2.6 因子类型(factor)

因子(factor) 是 R 语言中一种用于表示分类变量的数据类型,它将一组离散的值映射到一个整数索引,这个整数索引称为因子水平(factor level)。因子变量通常用于存储分类变量,比如性别、文化背景等。

以下是创建和使用因子变量的示例代码:

# 创建一个包含因子变量的数据框
df <- data.frame(
  id = 1:5,
  gender = factor(c("male", "female", "male", "female", "male"))
)

# 打印数据框
df
# 输出:
#   id gender
# 1  1   male
# 2  2 female
# 3  3   male
# 4  4 female
# 5  5   male

# 计算因子变量的水平
levels(df$gender)
# 输出:female male

# 统计因子变量中每个水平的数量
table(df$gender)
# 输出:
# female   male 
#      2      3

在上面的示例中,我们使用 factor() 函数将字符向量转换为因子变量,并将因子变量存储在一个数据框中。然后我们使用 levels() 函数来获取因子变量的水平,使用 table() 函数来计算因子变量的每个水平数的数量。

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

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

相关文章

【Springboot】集成QQ邮箱信息发送

系列文章目录 文章目录 系列文章目录前言添加Maven依赖QQ邮箱开启POP服务配置application.properties文件Controller层编写 vue前端&#xff08;也可以直接省略&#xff09; 前言 这篇博客用于简单实现SpringBoot中发送请求&#xff0c;用户可以收到邮件。 添加Maven依赖 <…

ISIS 实验

(1)拓扑图 2&#xff09;需求&#xff1a; -实现PC1和PC2的通信 3&#xff09;配置步骤&#xff1a; -配置接口IP地址 -开启ISIS---类似于在OSPF中创建进程 -配置NET地址---类似于在OSPF中创建区域&#xff0c;指定Router-id -在接口上启用ISIS--类似于在OSPFv2中用ne…

SKNet讲解

SKNet讲解 0. 引言1. 网络结构1.1 Split部分1.2 Fuse部分1.3 Select部分1.4 三分支的情况 2. SKNet网络体系结构3. 分析与解释4. 代码总结 0. 引言 视皮层神经元的感受野大小受刺激的调节&#xff0c;即对不同刺激&#xff0c;卷积核的大小应该不同&#xff0c;但在构建CNN时一…

<DB2>《DB2创建分区表及相关操作》(精华)

《DB2创建分区表及相关操作》 1 基本概念2 操作2.1 查看数据库中存在的分区表2.2 查看分区表详细2.3 断开对数据表的访问连接2.4 备份数据2.5 拆离分区2.6 添加分区2.7 导入数据2.8 校验前后数据2.9 删除临时表数据 1 基本概念 当表中的数据量不断增大&#xff0c;查询数据的速…

使用Kettle实现数据排序

一、Kettle的安装 1.下载Kettle的安装包文件 在Windows系统中打开浏览器&#xff0c;访问Kettle官网&#xff08;https://sourceforge.net/projects/pentaho/&#xff09;&#xff0c;下载Kettle安装文件pdi-ce-9.1.0.0-324.zip。 或者在我的百度网盘分享里面下载 链接&…

【软件测试】软件测试总结笔记(2)

软件测试过程&#xff08;内容&#xff09; 1.单元测试基本概念定义⭐单元测试环境⭐单元测试内容单元测试用例的设计思路⭐单元测试的过程 2. 集成测试集成测试内容集成测试优点⭐集成测试层次集成测试方法Drivers and Stubs ⭐集成策略&#xff08;基于分解的集成&#xff09…

crontab定时任务介绍

1 crontab概述 crontab是linux操作系统上用来设置定时任务的基础命令&#xff0c;是基于crond服务实现任务调度执行。 当安装完成操作系统后&#xff0c;默认会安装crond服务及其附属命令&#xff0c;并且会自动启动crond进程&#xff0c;crond进程每分钟会定期检查是否有要执…

Python量化交易:策略创建运行流程

学习目标 目标 知道策略的创建和运行知道策略的相关设置知道RQ的策略运行流程应用 无 1、体验创建策略、运行策略流程 1.1 创建策略 1.2 策略界面 2、 策略界面功能、运行介绍 2.1 一个完整的策略需要做的事情 选择策略的运行信息&#xff1a; 选择运行区间和初始资金选择回…

水库大坝安全问题有哪些?

我国现有水库大坝9.8万余座&#xff0c;80%水库大坝修建于上世纪50至70年代&#xff0c;受经济、技术等历史因素的影响&#xff0c;存在坝体结构破损、坝基渗漏、坝体渗漏、坝面变形等严重的安全隐患。 一、水库大坝的安全问题主要包括以下几个方面&#xff1a; 1.坝体结构破损…

“微商城”项目(3页面布局)

1.设置标题 设置页面头部标题&#xff0c;方便告诉用户当前显示的是哪一个页面。编辑src\router.js文件&#xff0c;示例代码如下。 routes: [{ path: /, redirect: /home, meta: { title: 首页 } },{ path: /home, component: Home, name: home, meta: { title: 首页 } } ] …

ConditionObject的await方法分析

ConditionObject的await方法分析 判断当前线程是否中断&#xff0c;中断直接抛出非法监视器状态异常要是没有中断则通过addConditionWaiter()方法将该节点加入到Condition的单向链表中通过fullyRelease(node)方法一次新释放掉锁资源初始化一个状态模式为0的标记执行while判断&…

Linux基础【Linux开发】

Linux基础【Linux开发】 1.Linux系统结构2.Linux内核下载流程3. 文本编辑器4. 软件包管理5. shell命令5.1 shell作为命令语言5.2 shell作为编程语言 6. makefile工程管理文件 1.Linux系统结构 2.Linux内核下载流程 Linux内核官方网站&#x1f447; 3. 文本编辑器 vim 老…

TextCNN:用于文本分类的CNN网络

参考资料&#xff1a;文本分类之TextCNN与DPCNN TextCNN 是在2014年的论文 《Convolutional Neural Networks for Sentence Classification》中提出来的。 以下是TextCNN的网络结构&#xff1a; &#xff08;1&#xff09;TextCNN的第一层为 Embedding 层 Embedding 层的输入…

C++的右值引用和移动语义

1.左值和右值 在C中&#xff0c;每个表达式或者是左值&#xff0c;或者是右值。 左值(lvalue)&#xff1a;可以出现在赋值表达式左侧的值&#xff0c;例如变量名a、数据成员a.m、解引用表达式*p等。左值可以被赋值和取地址。右值(rvalue)&#xff1a;只能出现在赋值表达式右侧…

十七、多线程(下)

文章目录 一、线程互斥&#xff0c;它是对的&#xff0c;但是不合理&#xff08;饥饿问题&#xff09;——同步二、条件变量&#xff08;一&#xff09;概念&#xff08;二&#xff09;条件变量接口1. pthread_cond_init 创建条件变量2. pthread_cond_wait 等待条件满足3. pthr…

类的成员之:构造器(构造方法)

1.构造器的特征&#xff1a; 它具有与类相同的名称它不声明返回值类型。&#xff08;与声明为void不同&#xff09;不能被static、final、synchronized、abstract、native修饰&#xff0c;不能有return语句返回值 2.构造器的作用&#xff1a; 1.创建对象2.初始化对象的…

StackLLaMA: A hands-on guide to train LLaMA with RLHF

Paper name StackLLaMA: A hands-on guide to train LLaMA with RLHF Paper Reading Note Project URL: https://huggingface.co/blog/stackllama Code URL: https://huggingface.co/docs/trl/index TL;DR Huggingface 公司开发的 RLHF 训练代码&#xff0c;已集成到 hugg…

产品设计-产品设计五要素

概念介绍 产品设计五要素分别是&#xff1a;战略层、范围层、结构层、框架层、表现层。自上而下的分析可用来分析已有的产品&#xff0c;自下而上分析则可以用来创造新的产品。下面是各个层级所包括的内容&#xff1a; 战略层&#xff1a;产品目标和用户需求&#xff08;做什…

【STL(2)】

STL&#xff08;2&#xff09; 知识点回顾函数对象函数对象理解系统的仿函数仿函数应用 容器适配器stackdeque queuepriority_queue mapmap使用插入访问下标访问的应用&#xff1a;计算文件中单词的个数 知识点回顾 在STL库中存在三个容器适配器&#xff0c;stack - queue - p…

西门子200系列PLC学习课程大纲(课程筹备中)

西门子200系列PLC学习课程大纲如下表所示&#xff0c;共106课&#xff0c;关注我&#xff0c;让你从菜鸟变大神。 第1课西门子200PLC概述S7-200 PLC新特性是什么第2课S7-200 PLC的CPU介绍第3课S7-200 PLC编程软件介绍第4课S7-200 PLC通信方式有哪些第5课S7-200 PLC显示面板介绍…