R语言——数据结构与数据处理

2024-06-21 13:28

本文主要是介绍R语言——数据结构与数据处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、练习使用seq( )函数创建向量:使用3种方法生成0~1,步长为0.1的向量,并在控制台打印出来。

2练习使用rep( )函数创建向量:(1)生成一个4个元素均为3的向量;(2)生成一个1 1 2 2 3 3的向量。

3、使用matrix函数创建两个矩阵mat1、mat2。mat1的数据是1:6,3行2列的形式。mat2的数据是7:12,两行三列。(1)编写一个函数调用apply函数族,让矩阵mat1的每一个元素都减去矩阵mat1的最大值,并输出。(2)计算mat1、mat2矩阵相乘并输出%*%。

4、创建一个list列表,列表中包括两个向量、两个矩阵、一个数据框、两个函数(fun1、fun2)。其中fun1实现向量加法,fun2实现矩阵的乘法运算。打印出列表中的各个元素,并调用函数fun1、fun2,输出相应的打印结果。

5、练习读入csv、txt、xlsx格式的本地文件,并将csv文件导出为txt文件。

6、将下列数据以数据框的形式表示出来,并按照年龄,出生月份升序排序。

序号

姓名

年龄

出生月份

1

Jacks

27

2

2

ROSE

28

5

3

KD

27

6

4

ICE

29

3

5

MIK

27

1

 

 

  1. 练习使用seq( )函数创建向量:

代码:

# 方法一vec1 <- seq(0, 1, by = 0.1)print(vec1)# 方法二vec2 <- seq(from = 0, to = 1, length.out = 11)print(vec2)# 方法三vec3 <- 0:10 / 10print(vec3)

截图:

  1. 练习使用rep( )函数创建向量:

代码:

# (1) 生成一个4个元素均为3的向量vec_rep1 <- rep(3, times = 4)print(vec_rep1)# (2) 生成一个1 1 2 2 3 3的向量vec_rep2 <- rep(1:3, each = 2)print(vec_rep2)

截图:

3、

代码:

        

# 创建矩阵mat1mat1 <- matrix(1:6, nrow = 3, ncol = 2)print(mat1)# 创建矩阵mat2mat2 <- matrix(7:12, nrow = 2, ncol = 3)print(mat2)# (1) 使用apply函数族,让矩阵mat1的每一个元素都减去矩阵mat1的最大值,并输出subtract_max <- function(x) {x - max(x)}result <- apply(mat1, c(1, 2), subtract_max)print(result)# (2) 计算mat1、mat2矩阵相乘并输出%*%result_multiply <- mat1 %*% mat2print(result_multiply)

截图:

(1)

(2)

4、

代码:

# 创建向量、矩阵、数据框和函数vec <- c(1, 2, 3)mat <- matrix(1:4, nrow = 2)df <- data.frame(ID = 1:3, Name = c("A", "B", "C"))fun1 <- function(x, y) {x + y}fun2 <- function(x, y) {x %*% y}# 创建列表my_list <- list(vec, mat, df, fun1, fun2)# 打印列表中的各个元素print(my_list)# 调用函数fun1、fun2result_fun1 <- my_list[[4]](2, 3)result_fun2 <- my_list[[5]](mat, mat)print(result_fun1)print(result_fun2)

截图:

  1. 练习读入csv、txt、xlsx格式的本地文件,并将csv文件导出为txt文件。

数据实例:

序号

学院

班级

总金额

230

信息工程学院

数据科学与大数据技术20-1

800

231

信息工程学院

数据科学与大数据技术20-2

1500

232

信息工程学院

数据科学与大数据技术20-2

500

233

信息工程学院

数据科学与大数据技术21-1

500

234

信息工程学院

数据科学与大数据技术21-2

1000

235

信息工程学院

数据科学与大数据技术20-2

1500

236

信息工程学院

数据科学与大数据技术21-2

800

237

信息工程学院

数据科学与大数据技术21-2

800

238

信息工程学院

数据科学与大数据技术21-1

500

239

信息工程学院

数据科学与大数据技术21-1

500

240

信息工程学院

数据科学与大数据技术21-1

2000

241

信息工程学院

数据科学与大数据技术21-2

1000

242

信息工程学院

数据科学与大数据技术20-2

500

243

信息工程学院

数据科学与大数据技术21-2

800

244

信息工程学院

数据科学与大数据技术20-1

800

245

信息工程学院

物联网工程20-1

1500

246

信息工程学院

数据科学与大数据技术21-2

500

247

信息工程学院

物联网工程20-1

1200

248

信息工程学院

网络工程20-1

500

249

信息工程学院

物联网工程21-1

1000

250

信息工程学院

物联网工程21-2

800

251

信息工程学院

数据科学与大数据技术20-2

1000

252

信息工程学院

数据科学与大数据技术20-2

1500

253

信息工程学院

数据科学与大数据技术20-1

1500

254

信息工程学院

网络工程20-1

1400

255

信息工程学院

数字媒体技术21-2班

800

256

信息工程学院

数字媒体技术20-1

200

257

信息工程学院

数字媒体技术20-1

500

258

信息工程学院

数字媒体技术20-2

300

259

信息工程学院

数字媒体技术20-2

2300

260

信息工程学院

数字媒体技术20-2

300

 

代码:

# 导入所需的包library(readxl)# 读取CSV文件csv_data <- read.csv("student.csv")print("CSV文件内容:")print(csv_data)# 读取文本文件txt_data <- read.table("student.txt")print("文本文件内容:")print(txt_data)# 读取Excel文件xlsx_data <- read_excel("student.xlsx")print("Excel文件内容:")print(xlsx_data)# 将CSV文件导出为TXT文件write.table(csv_data, "student2.txt", sep = "\t", row.names = FALSE)print("CSV文件已导出为TXT文件。")

截图:

6、

代码:

        

# 创建数据框data <- data.frame(序号 = 1:5,姓名 = c("Jacks", "ROSE", "KD", "ICE", "MIK"),年龄 = c(27, 28, 27, 29, 27),出生月份 = c(2, 5, 6, 3, 1))# 按照年龄和出生月份升序排序sorted_data <- data[order(data$年龄, data$出生月份), ]print(sorted_data)

截图:

这篇关于R语言——数据结构与数据处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081354

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

LangChain转换链:让数据处理更精准

1. 转换链的概念 在开发AI Agent(智能体)时,我们经常需要对输入数据进行预处理,这样可以更好地利用LLM。LangChain提供了一个强大的工具——转换链(TransformChain),它可以帮我们轻松实现这一任务。 转换链(TransformChain)主要是将 给定的数据 按照某个函数进行转换,再将 转换后的结果 输出给LLM。 所以转换链的核心是:根据业务逻辑编写合适的转换函

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

C语言 将“China”译成密码

将“China”译成密码,密码规律是:用原来的字母后面的第4个字母代替原来的字母。例如,字母“A”后面的第4个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre”。编译程序用付赋初值的方法使c1,c2,c3,c4,c5这五个变量的值分别为“C”,“h”,“i”,“n”,“a”,经过运算,使c1,c2,c3,c4,c5分别变成“G”,“l”,“m”,“r”,“e”。分别用put

【数据结构】线性表:顺序表

文章目录 1. 线性表2. 顺序表2.1 概念及结构2.2 接口实现2.3 顺序表的问题及思考 1. 线性表 线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式

数据结构9——排序

一、冒泡排序 冒泡排序(Bubble Sort),顾名思义,就是指越小的元素会经由交换慢慢“浮”到数列的顶端。 算法原理 从左到右,依次比较相邻的元素大小,更大的元素交换到右边;从第一组相邻元素比较到最后一组相邻元素,这一步结束最后一个元素必然是参与比较的元素中最大的元素;按照大的居右原则,重新从左到后比较,前一轮中得到的最后一个元素不参4与比较,得出新一轮的最大元素;按照上述规则,每一轮结

C语言入门系列:探秘二级指针与多级指针的奇妙世界

文章目录 一,指针的回忆杀1,指针的概念2,指针的声明和赋值3,指针的使用3.1 直接给指针变量赋值3.2 通过*运算符读写指针指向的内存3.2.1 读3.2.2 写 二,二级指针详解1,定义2,示例说明3,二级指针与一级指针、普通变量的关系3.1,与一级指针的关系3.2,与普通变量的关系,示例说明 4,二级指针的常见用途5,二级指针扩展到多级指针 小结 C语言的学习之旅中,二级

【LinuxC语言】select轮询

文章目录 前言select函数详解selectfd_set类型一个小问题select函数使用步骤改进服务器代码select服务器示例代码 总结 前言 在Linux C语言编程中,我们经常需要处理多个I/O操作。然而,如果我们为每个I/O操作创建一个线程,那么当I/O操作数量增加时,线程管理将变得复杂且效率低下。这就是我们需要select轮询的地方。select是一种高效的I/

拓扑排序——C语言

拓扑排序(Topological Sorting)是一种用于有向无环图(DAG)的排序算法,其输出是图中所有顶点的线性排序,使得对于每条有向边 (u, v),顶点 u 在 v 之前出现。拓扑排序确定了项目网络图中的起始事件和终止事件,也就是顶点的执行顺序。         因为是有向无环图,所以拓扑排序的作用其实就是把先发生的排序在前面,后发生的排序到后面。 例如现在我们有一个