R实验 基础(四)

news2024/11/24 9:12:57

  • 实验目的:
  1. 掌握R对数据文件的读、写操作;
  2. 了解R基础包中的数据集及相关的操作。

实验内容:

读取纯文本文件。在R语言基础包中,有两个函数可以使用:

read.table()函数(包括read.csv()函数)

只能读取表格形式的文本文件。

函数返回值的对象类型是数据框。

若文本文件有行表头且没有表示序号的列表头,需要加上参数header=T。

scan()函数,scan()比read.table()读取文件的形式要更加丰富

scan()可以读取只有一个属性(变量)的数据,从而用来创建向量。如:

x <- scan("math.data", what=double(0))

创建了一个数值向量。文件math.data中存放的是若干同学的数学成绩。由于成绩是数值类型,而what参数默认是double型,因此,可以这里可以把参数what省略。如果要读取的文件是一个文本文件,则应设参数what="",告知函数读取的是字符类型。

scan()可以通过指定变量的类型,读取有多个属性的数据,可以用来创建不同的对象,如矩阵,数据框,列表等。例如:

mydata <- scan("data.dat", what = list("", 0, 0))

创建了一个列表。文件data.dat中有1个字符、2个数值共三个变量,因此,此时参数what是一个列表,告知函数读取的第一个元素是字符类型(""),后两个元素是数值类型(对应两个0)。

scan()若不输入文件名,则可以直接屏幕读取用户输入的数据

:对于文件读取和写入,R默认是从当前系统的工作目录进行。因此,当要读写的文件不在当前系统的工作目录中时,在使用这两个函数中参数file(表示要读取的文件)时,需要注意以下几点(以C:\myfile\myfile.txt文件为例):

参数file必须带上文件的路径。可以是绝对路径或者相对路径。

如果不想在参数file中带上文件的路径,有两种方法:使用命令getwd() 找到当前工作目录,将要读写的文件放在此目录下;或者使用命令setwd("C:\myfile") 将要读写的文件所在的目录作为当前工作目录。这样在读写文件时,参数file只需要写文件名即可,即"myfile.txt"。

使用file.choose()函数。如read.table(file.choose(), header=T)。在运行代码时,此函数时弹出对话框,让用户选择打开要读写文件的目录,然后选择目标文件。强烈推荐使用此种方法,免去了记忆和书写文件路径的麻烦,特别是能够避免因数据文件位置移动带来的错误!

根据以下小题中的数据特点,选用上述函数完成练习,并将代码和运行结果截图粘贴于每小题之下的空行。

先将下面数据表中的数据写成一个纯文本文件(方法不限),并以student.txt为文件名保存在合适的目录中,然后读取该文件并赋值给变量stu,展示变量stu并用class()函数查看变量stu是R中的哪一种数据结构?

学生数据

序号

姓名

性别

年龄

身高cm

体重kg

1

张三

14

156

42.0

2

李四

15

165

49.0

3

王五

16

157

41.5

4

赵六

14

162

52.0

5

丁一

15

159

45.5

  • 实验目的:
  1. 掌握R对数据文件的读、写操作;
  2. 了解R基础包中的数据集及相关的操作。

数据“birth.data”存放了某地100名新生儿的体重数据,读取此数据并赋值给变量w,展示变量w并用class()函数查看变量w是R中的哪一种数据结构?

数据“h_w.data”存放了某地100名学生的身高、体重数据(此数据中奇数列是身高数据,偶数列是体重数据),读取此数据时,要求将其中身高数据赋予变量height,体重数据赋予变量weight,并将读取结果赋值给变量hw,展示变量hw并用class()函数查看变量hw是R中的哪一种数据结构?

在命令行模式中,利用scan()手工录入以下5个学号:12、15、16、18、47,并赋予变量x。

在命令行模式中,利用scan()手工录入以下5个姓名:钱二、孙三、周四、吴五、郑六,并赋予变量y。

将x和y合并成一个名为df_xy数据框。

用scan()函数读下列数据(不能采用读取文件的方式),并将它们放在列表animals中。

1 dog 3

2 cat 5

3 duck 7

提示:利用scan()函数的what参数。

读取Excel文件。在R语言基础包中,虽然没有函数能直接读取Excel文件,但还是有办法处理:

间接方法:先转换成下面两个格式,再利用两个读取文本文件的函数读取

转换成文本文件

转换成csv文件(本质上也是文本文件)

直接方法:利用第三方程序包,如

利用readxl 包中的 reade_excel() 函数(既可以读 .xls 也可以读.xlsx 类型文件)

利用openxlsx 包中的 read.xlsx() 函数(仅可以读取 .xlsx 类型文件)

此练习自行完成,不需要截图粘贴于此。

数据写入纯文本文件。在R语言基础包中,可以使用write()函数。注意,此函数可能会改变原来数据的格式。完成以下练习:

wx <- matrix(1:12, ncol=6)

write(wx, file= "wx.data")

比较矩阵wx和文件wx.data的格式是否一样?
不一样

数据写入表格形式的文本文件。在R语言基础包中,可以使用write.table()函数或write.csv()函数,两个函数的区别主要是写入文件后列与列之间的分隔符不同。完成以下练习:

对第1题中的第6 )小题的数据框df_xy

用函数write.table()将此数据框以xy.txt为文件名保存在D盘根目录下。(若不显示行表头,设置参数row.name=F,可自行比较此参数取T和F时的效果)

row.name=F

用函数write.csv()将此数据框以xy.csv为文件名保存在D盘根目录下。

R基础包中提供了100多个数据集,为学习R提供了典型的真实数据案例(第三方程序包中在提供相关函数的同时有些也会提供相应的数据集供学习)。在R中,

data()函数可以查看基础包中内置的所有数据集。

data(数据集的名字)可以加载基础包中对应名字的数据集。

再输入数据集名字就可以查看该数据集的所有数据。如果是第三方程序包的数据集,相应的命令格式为

data(package="第三方程序包名")

data(第三方程序包中的某个数据集名, package="第三方程序包名")

练习:

查看R基础包中的所有数据集。

加载R基础包中的mtcars数据集。

查看mtcars数据集中所有数据(展示了32辆汽车在11个指标上的数据)。

head(mtcars),仅显示数据集mtcars中前6个观测值。

tail(mtcars),仅显示数据集mtcars中后6个观测值。

names(mtcars),仅显示数据集mtcars中的变量.

思考:(以下运算类型的题目请先进行笔算后,再在R中运算核对)

read.table()的返回值是什么对象类型?

数据框

对于单属性的文本文件,scan()函数返回值是什么对象类型?对于多属性的文本文件,scan()函数返回值是什么对象类型?

对于单属性的文本文件,函数返回的是一个包含该属性值的向量。向量类型取决于属性值的类型
对于多属性的文本文件,函数返回的是一个矩阵或数据框对象,其中每列对应一个属性。矩阵或数据框的列可以具有不同的数据类型,取决于各个属性的类型。

如果想显示某数据集中的前10行数据,应该怎么修改head()的参数?

head([数据集名],n=10)

如果想显示某数据集中的后10行数据,应该怎么修改tail()的参数?

tail([数据集名],n=10)

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

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

相关文章

【html】网页布局模板01---简谱风

模板效果: 这是一种最简单,最干净的一种网页布局。 模板介绍: 模板概述: 这个模板是一个基础的网页布局模板,包括一个头部区域(header),其中包含网站标题(logo)和导航菜单(nav),以及一个页脚区域(copy),用于显示版权信息。整体布局简洁明了,适合作为各种类…

TypeScript-搭建编译环境

搭建编译环境 TypeScript 编写的代码是无法直接在js引擎( 浏览器 / Nodejs )中运行的&#xff0c;最终还需要经过编译成js代码才可以正常运行 搭建手动编译环境 1️⃣ 全局安装 typescript 包&#xff08;编译引擎&#xff09; -> 注册 tsc 命令 npm i -g typescript 2…

Julia编程01:Julia语言介绍

在2020上半年&#xff0c;因为疫情无法返校&#xff0c;所以在家待了半年&#xff0c;期间学习一点了R语言、Python、Julia、linux和C语言&#xff0c;只是学习基础语法并没有项目练习&#xff0c;因此返校半年后差不多都不记得了&#xff0c;现在重新捡起Julia丰富下当时写的笔…

MyBatis实用方案,如何使项目兼容多种数据库

系列文章目录 MyBatis缓存原理 Mybatis plugin 的使用及原理 MyBatisSpringboot 启动到SQL执行全流程 数据库操作不再困难&#xff0c;MyBatis动态Sql标签解析 Mybatis的CachingExecutor与二级缓存 使用MybatisPlus还是MyBaits &#xff0c;开发者应该如何选择&#xff1f; 巧…

民国漫画杂志《时代漫画》第21期.PDF

时代漫画21.PDF: https://url03.ctfile.com/f/1779803-1248634754-017e2b?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

YOLOv8改进 | 图像去噪篇 | 单阶段盲真实图像去噪网络RIDNet辅助YOLOv8图像去噪(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是单阶段盲真实图像去噪网络RIDNet,RIDNet(Real Image Denoising with Feature Attention)是一个用于真实图像去噪的卷积神经网络(CNN),旨在解决现有去噪方法在处理真实噪声图像时性能受限的问题。通过单阶段结构和特征注意机制,…

SpringBoot入门教程:Word模板生成docx文件

一:处理docx 自己写一个docx文档,然后另存为选择格式 Word XML 文档(*.xml),然后使用thymeleaf语法将实际值使用表达式代替。 二:pom <dependency><groupId>org.springframework.boot</groupId>

基于EBAZ4205矿板的图像处理:07sobel边缘检测算法

基于EBAZ4205矿板的图像处理&#xff1a;07sobel边缘检测算法 项目文件 随后会上传项目全部文件&#xff0c;和之前一样免费下载 先看效果 如上所见&#xff0c;能够提取图像的边缘&#xff0c;这个sobel边缘检测算法的阈值&#xff08;认定是否为边缘的阈值&#xff09;一样…

AWPortrait1.4更新,人物的生成更加趋近真实感,将SD1.5人像的真实感提升到了一个新的高度

AWPortrait1.4更新&#xff0c;人物的生成更加趋近真实感&#xff0c;将SD1.5人像的真实感提升到了一个新的高度 经过5个月&#xff0c;AWPortrait终于迎来了1.4。 本次更新基于1.3训练&#xff0c;使得人物的生成更加趋近真实感&#xff0c;将SD1.5人像的真实感提升到了一个新…

【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt窗口 | 状态栏 | QStatusBar的使用及说明 文章编号&#xff1a;Qt 学…

【学习笔记】Windows GDI绘图(六)图形路径GraphicsPath详解(中)

上一篇【学习笔记】Windows GDI绘图(五)图形路径GraphicsPath详解(上)介绍了GraphicsPath类的构造函数、属性和方法AddArc添加椭圆弧、AddBezier添加贝赛尔曲线、AddClosedCurve添加封闭基数样条曲线、AddCurve添加开放基数样条曲线、基数样条如何转Bezier、AddEllipse添加椭圆…

营销短信XML接口对接发送示例

在现代社会中&#xff0c;通信技术日新月异&#xff0c;其中&#xff0c;短信作为一种快速、简便的通信方式&#xff0c;仍然在日常生活中占据着重要的地位。为了满足各种应用场景的需求&#xff0c;短信接口应运而生&#xff0c;成为了实现高能有效通信的关键。 短信接口是一种…

Linux--07---查看CPU、内存、磁盘

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 常用命令1.查看CPU使用率1.1 top 命令第一行是任务队列信息&#xff1a; top第二行为进程的信息 Tasks第三行为CPU的信息Mem:Swap 1.2 vmstat命令参数详解每个参数的…

(二)可视化面板:Grafana的安装

其他相关文章 &#xff08;一&#xff09;一套开源的系统监控报警框架&#xff1a;Prometheus安装 什么是grafana Grafana是一个面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器。支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为…

【ACM出版,下周召开】2024机器智能与数字化应用国际会议(MIDA2024)

会议日期&#xff1a;2024年5月30-31日 会议地点&#xff1a;中国-宁波 会议官网&#xff1a;https://www.iaast.cn/meet/home/Bx120sos 【大会主席】 Ljiljana Trajkovic 加拿大西蒙菲莎大学教授。 【论文出版与检索】 EI会议论文集-ACM出版 大会即日起围绕主题征集会…

K8s资源限制和三种探针

一 默写总结 1 pod 的组成 ① Pod 中有几种容器 init 初始化 &#xff0c;阻塞主容器运行&#xff0c;初始化后方可运行主容器 pause 基础容器&#xff1a; 提供network 的 namespace 和 共享存储 业务容器&#xff1a; 跑Pod 主应用 &#xff08;POD中跑什么&#xff1a;微…

22-LINUX--多线程and多进程TCP连接

一.TCP连接基础知识 1.套接字 所谓套接字(Socket)&#xff0c;就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端&#xff0c;提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲&#xff0c;套接字上联应用进程…

学习前端第四十三天(样式和类、元素大小和滚动、Window大小和滚动、坐标)

一、样式和类 1、className&#xff0c;classList elem.className 对应于 "class" 特性 <div id"box" class"a b" style"height: 20px;">box</div><script>const box document.getElementById("box");…

uniapp gaid-item组件增加角标的方法以及最新版本已删除角标参数的注意事项

在uniapp项目的开发中&#xff0c;列表组件gaid-item大家应该都是经常用的&#xff0c;其实组件上的角标用法也是很方便的&#xff0c;但是不熟悉的新手朋友&#xff0c;特别是用最新版的朋友可能都找不到角标方法的使用地方&#xff1a; 1.首先官方说明&#xff0c;在最新版本…

【Unity】免费的高亮插件——QuickOutline

除了常见的HighLightSystem来实现的高亮功能&#xff0c;其实还有很多的方法实现物体的高亮。 在 Unity资源商店 搜索OutLine&#xff0c;就会有很多免费好用的高亮插件。 下面介绍一下 QuickOutline这个插件&#xff0c;在 Unity资源商店 搜索到后&#xff0c;点击进去就可以…