当前位置: 首页 > news >正文

【数据挖掘】练习1:R入门

课后作业1:R入门

一:习题内容

1.要与R交互必须安装Rstudio,这种说法对不对?

不对。虽然RStudio是一个流行的R交互集成开发环境,但并不是与R交互的唯一方式。

与R交互可以采用以下几种方法:

  1. 使用R Console:R语言自带了一个控制台界面。这种方式不需要安装任何额外的软件,只需安装R本身。
  2. 使用其他编辑器:用户可以使用任何文本编辑器编写R代码,并在R控制台或者终端中执行。一些常见的文本编辑器包括Notepad++、Sublime Text、Atom等。用户只需要将编辑器中编写的R代码复制粘贴到R控制台中执行即可。
  3. 使用其他集成开发环境:其他集成开发环境包括Visual Studio Code(通过R扩展)、Jupyter Notebook(通过IRkernel)、Emacs(通过ESS包)等。

2.下面哪一个不能用于R的赋值?

A.<- B.-> C.= D._

答案是:D。

A是采用左箭头进行赋值,例如 x <- c(1,2)。

B是采用右箭头进行赋值,例如 c(1,2) -> x。

C是采用等于号进行赋值,例如x = c(1,2)。


3.objects(4)输出什么?

在R中,执行 objects(4) 会列出所有默认加载的函数名称,这些函数包含在R的基本命名空间中。输出函数包括绘图函数(如plot()、points()、lines()等)、统计函数(如hist()、boxplot()等)以及其他常用函数(如title()、legend()等)。

4.安装R包和载入R包有什么区别。

安装R包是指将R包从CRAN(Comprehensive R Archive Network)或其他来源下载并安装到你的计算机上。当用户第一次使用某个R包时,用户需要先安装R包,然后才能在R环境中使用。安装R包通常只需要进行一次,在R环境中安装后,用户就可以在需要的时候随时载入并使用该包。

载入R包是指在用户的R会话中将某个已经安装的R包加载到内存中,以便在当前会话中使用该包中的函数和数据。当用户需要使用某个已安装的R包时,用户需要使用library()函数或require()函数来加载。载入R包通常需要在每个新的R会话中执行一次,以确保该包的函数和数据可用。

总而言之,安装是将包下载到你的环境中的过程,只需要做一次(除非需要更新)。载入是在每次R会话中激活包以便使用的过程,需要在每次需要使用包时进行。

5.Rhistory和Rdata文件有什么区别。

Rhistory和Rdata文件是在R中用于保存数据和历史记录的两种不同类型的文件,其作用和内容有所不同。

Rhistory

Rdata

Rhistor文件记录了在R控制台中输入的命令历史记录。

Rdata文件用于保存R工作环境中的数据和对象。

每次在R控制台中输入命令并按下回车键时,该命令都会被追加到 Rhistory 文件中。

可以使用save()函数将R工作空间中的数据和对象保存到一个 .Rdata 文件中。

Rhistory 文件可以在退出R会话时保存,以便下次重新进入R时恢复命令历史记录。

可以包含多个数据框、向量、列表等R对象,以及与它们相关的元数据。

通常,Rhistory 文件的扩展名是 .Rhistory,并且位于用户主目录下(如~/.Rhistory)。

可以使用load()函数加载 .Rdata 文件,并将其中保存的数据和对象恢复到R工作环境中。

总而言之,RData以二进制的方式保存了会话中的变量值,而Rhistory以文本文件的方式保存了R会话中的所有命令。

6.什么是屏蔽?

在R中,屏蔽(masking)是指当两个或多个具有相同名称的函数或对象存在时,较近的作用域中的函数或对象将屏蔽较远处的函数或对象。

这种情况通常发生在使用多个包或在不同的作用域中定义相同名称的函数或对象时。

例如,假设用户在一个R脚本中加载了两个包,这两个包都定义了名为mean()的函数。当用户调用mean()函数时,由于R按照搜索路径的顺序查找函数,将优先使用最近加载的包中定义的mean()函数。

7.显示R会话的搜索路径。

在R中,可以使用search()函数来显示R会话的搜索路径。

同时,可以使用getwd()函数获取当前工作目录的路径。

8.用objects列出“datasets”包中的所有对象。

代码:

objects("package:datasets")

运行结果:

9.在packages窗口中从CRAN安装mangoTraining包。

根据网站可知,mangoTraining依赖包目前无法匹配R4.3的版本(CRAN - Package mangoTraining)。通过访问曾经该依赖包的存档压缩文件在网站(Index of /src/contrib/Archive/mangoTraining),可下载相应版本的mangoTraining压缩包。


下载某个压缩包后,解压到本地。

在RStudio的console处,通过install.packages的代码【install.packages("C:\\Users\\86158\\Desktop\\mangoTraining", repos = NULL, type = "source")】可以安装完毕。

10.列出mangoTraining中包含的对象。

代码:

library("mangoTraining")

objects("package:mangoTraining")

运行结果:

11. 计算31079除170166719的余数。

代码:

a <- 31079

b <- 170166719

c <- b%%a

c


运行结果:

12.利用R计算以下数值,小数点精确到后5位。

(1)


代码:

round(pi**exp(1),5)

round(exp(1)**pi,5)

round(exp(pi)**exp(1),5)   # 这个也可用sprintf进行省略数的计算,参考(2)中的代码

round(pi**exp(1)-exp(1)**pi,5)

运行结果:

(2)

代码:

result <- round((2.3)^8 + log(7.5) - cos(pi/sqrt(2)), 5)

formatted_result <- sprintf("%.5f", result)

formatted_result


运行结果:

13. 使用seq和rep函数生成向量(1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9)。

分析可知,该向量由(1 2 3 4 5)、(2 3 4 5 6)、(3 4 5 6 7)、(4 5 6 7 8)、(5 6 7 8 9)5个子向量组成,且后面一个子向量在前面一个子向量的基础上进行了+1操作。

代码:(1)生成从1到5的向量;(2)使用rep()函数重复向量,并逐步增加重复的次数。

vec <- seq(1, 5)

result <- rep(vec, each = 5) + rep(0:4, times = 5)

result

运行结果:

14.用1-9的整数列创建长度为9的字符型向量,以letters作为向量的元素名,使用该向量完成以下操作。

(0)创建向量。

代码:

char_vec <- as.character(1:9)

names(char_vec) <- letters[1:9]

char_vec

运行结果:

(1)选择向量的第一个值和最后一个值。

代码:

char_vec[c("a","i")]


运行结果:

(2)选择向量中大于3的值。


代码:

char_vec[char_vec > 3]

运行结果:

(3)选择向量中2-7之间的所有值。

代码:

char_vec[2:7]


运行结果:

(4)选择除了5以外的所有值。

代码:

char_vec[-5]


运行结果:

(5)选择向量中名称为“D”、“E”,“G”的元素。


代码:

char_vec[c("d", "e", "g")]

运行结果:

相关文章:

  • 自然语言处理(NLP)—— 语义关系提取
  • HTML 学习笔记(九)颜色值和长度单位
  • ThingsBoard开源物联网平台介绍
  • python3:No module named ‘pandas‘
  • LeetCode454 四数相加
  • 用Docker Compose实现负载均衡【入门篇】
  • 数据库管理-第160期 Oracle Vector DB AI-11(20240312)
  • STM32外设分类--学习笔记
  • Kotlin Retrofit 网络请求
  • Facebook:连接世界的社交巨人
  • 嵌入式、开发板 智能音响 OpenHarmony GPT 大模型 智能硬件
  • 【读论文】【精读】3D Gaussian Splatting for Real-Time Radiance Field Rendering
  • 手撸nano-gpt
  • Django——数据库
  • cad怎么转换成黑白的pdf图纸?分享3个常用的软件!
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • es6要点
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Java教程_软件开发基础
  • Js基础知识(一) - 变量
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python连接Oracle
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • 初识 beanstalkd
  • 基于HAProxy的高性能缓存服务器nuster
  • 今年的LC3大会没了?
  • 盘点那些不知名却常用的 Git 操作
  • 如何在 Tornado 中实现 Middleware
  • 实现菜单下拉伸展折叠效果demo
  • 使用agvtool更改app version/build
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • ​虚拟化系列介绍(十)
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (五)关系数据库标准语言SQL
  • (循环依赖问题)学习spring的第九天
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转载)(官方)UE4--图像编程----着色器开发
  • (轉貼) UML中文FAQ (OO) (UML)
  • .Net 6.0 处理跨域的方式
  • .NET Reactor简单使用教程
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .net 怎么循环得到数组里的值_关于js数组
  • .ui文件相关
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • @Builder用法
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [BJDCTF2020]The mystery of ip
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [BZOJ4010]菜肴制作
  • [hdu 1247]Hat’s Words [Trie 图]
  • [HUBUCTF 2022 新生赛]
  • [js]js设计模式小结