首页 > 其他分享 >第一章 简介

第一章 简介

时间:2023-08-13 09:00:26浏览次数:31  
标签:函数 简介 library 第一章 environment ls packages 目录

R语言简介

1.1 R是什么

R语言是一种开源的脚本语言,也是一种为统计计算和绘图而生的语言和环境, 在数据分析与预测以及数据可视化等方面享有良好的声誉。

1993年,R的最初版本发布给研究人员使用,解决复杂数据统计分析任务,并用多样化的图形来展示结果。

R的名字来源于它当时的两名开发者,新西兰奥克兰大学的Ross Ihaka和Robert Gentleman。

R是对S统计绘图语言的继承与发展。R系统是开源、免费的,由R开发核心小组负责其开发及维护。

1.2R语言的特点

1、算法覆盖广,软件扩展易

​ 作为统计分析工具,R语言几乎覆盖整个统计领域的前沿算法。

​ CRAN(Comprehensive R Archive Network)上已经有一万多个可以获取的R扩展包,并且以每个月200多个包的速度发布,内容涉及各行各业,可以适用于各种复杂的统计,如:贝叶斯推断、分类方法、计量经济学、生态学、金融学、遗传学、机器学习、稳健统计、空间统计、生存分析、时间序列等多个方面。数千个R包,上万种算法,开发者都能找到可直接调用的函数实现。

非过程模式

​ Python虽然也支持命令模式,但是相对来说,更偏向于流程控制语句,也就是可以写一堆语句,然后执行。R本身基本上不需要用到流程控制(当然,它也支持流程控制)。

交互性

敲回车,出结果。但是又不像SPSS那种用鼠标扎针的交互方式。

1.3安装R

  1. 进入R官方下载网址https://cran.r-project.org/ 。

  2. 选择相应的操作系统,如果使用Windows系统,可以点击“Download R for Windows”。

  3. 选择安装风格,建议选择基本安装。

  4. 点击“Download”下载安装程序 。

  5. 下载好后双击exe文件进行安装,安装好后在“开始”菜单里可以找到R程序,点击即可运行。

1.4安装与使用包

包是R函数、数据、预编译代码以一种定义完善的格式组成的集合。

R中的包存储在计算机上名为library的目录下,使用函数.libPaths ()可以查看该文件夹在计算机中的具体路径,函数library ()和search ()则可分别显示已安装和加载的包列表。

R已经预装了一组标准的包,其他包则可以通过下载安装来使用。

目前CRAN上提供了上万个可使用的包。

1.4.1安装包

安装包:install.packages('包名')

注:不添加参数执行install.packages()将显示一个CRAN的镜像站点列表,选择相应的镜像(通常选择离自己最近的节点)后再选择要安装的包名即可

> install.packages("stringr")  	#安装一个用于字符串处理的包

使用 available.packages 可以查看在库中的包 的所有信息(请注意,因为那里的包有成千上万个,所以这需要好几秒钟运行):

View(available.packages())

如果想安装到不同的位置,把参数 lib 传递给install.packages, repo 为 NULL 意味着包已经被下载 ,type为source意味着现在就构建包:

install.packages(
   c("xts", "zoo"),
  lib = "some/other/folder/to/install/to",   	   repos = "http://www.stats.bris.ac.uk/R/" 
)

1.4.2加载包

加载包:library('包名')

> library ("stringr") #载入字符串处理包stringr

1.4.2.1搜索路径

search()函数可查看所有已加载的包:

> search()
 [1] ".GlobalEnv"        "package:plyr"     
 [3] "tools:rstudio"     "package:stats"    
 [5] "package:graphics"  "package:grDevices"
 [7] "package:utils"     "package:datasets" 
 [9] "package:methods"   "Autoloads"        
[11] "package:base" 

1.4.2.2库和已安装的包

installed.packages 函数将返回一个数据框,它包含了 R 所知道的你电脑上所有包的信息。

> View(installed.packages())

R 安装时就自带的包(base、stats 以及其他大概 30 个)都存储在你安装 R 的 library 子目 录中。你可通过以下方法取得这个位置:

> R.home("library") 
[1] "E:/R/R-36~1.3/library"
> .Library
[1] "E:/R/R-36~1.3/library"

Home 目录可以通过以下方式找到:

> path.expand("~")
[1] "C:/Users/Administrator/Documents"
> Sys.getenv("HOME")
[1] "C:\\Users\\Administrator\\Documents"

可以用 .libPaths 函数查看 R 所知道的所有字符向量 :

> .libPaths()
[1] "E:/R/R-3.6.3/library"

1.4.3维护包

在包被安装后,可以通过 update. packages 完成更新到最新的版本。设置 ask = FALSE参数更新每个包不会提示

update.packages(ask = FALSE)

删除一个包只需要简单地把包含此包的目录从你的文件系统中删除即可。

remove.packages("zoo")

1.5环境

我们所创建的所有变量都需要存储在某处,即环境。环境本身也是另一种类型的变量,我 们可以像对待其他变量一样随意地分配和操作它们,并将其以参数的形式传递到函数中。 它们与列表密切相关,也能用于存储不同类型的变量。事实上,大部分用于列表的语法也 同样适用于环境,而且我们也可以强制地把列表强制当作环境使用

环境的创建使用的是 new.env 函数:

> an_environment<-new.env()

向环境中分配变量的方式与列表完全相同。可以使用双方括号或美元符号运算符。和列表一样,环境变量的类型和大小可以不同:

an_environment[["pythag"]]<-c(12, 15, 20, 21)

检索变量的方式也是如此:你可以使用列表的索引语法,或 assign 的对立函数 get:

> an_environment[["pythag"]]
[1] 12 15 20 21
> an_environment$pythag
[1] 12 15 20 21
> get("pythag", an_environment)
[1] 12 15 20 21

可以把环境参数传入 ls 和 ls.str 函数中,列出它的所有内容:

> ls(envir = an_environment)
[1] "pythag"
> ls.str(envir = an_environment)
pythag :  num [1:4] 12 15 20 21

可用 exists 函数测试变量是否在环境中:

> exists("pythag", an_environment)
[1] TRUE

使用 as.list 和 as. environment 函数能分别实现从环境到列表或相反过程的转 换。在后一种情况中,还可以使用 list2env 函数,它在创建环境时更为灵活:

> (a_list<-as.list(an_environment))
$pythag
[1] 12 15 20 21
> as.environment(a_list)
<environment: 0x000002cb88969210>
> list2env(a_list)
<environment: 0x000002cb891eaef0>

下列快捷函数可以同时访问全局环境(那些你从命令提示符中分配的变量的存储空间)和 基础环境(那些 R 基础包中自带的基础函数和变量):

> non_stormers<<-c(3, 7, 8, 13, 17, 18, 21) 
> get("non_stormers", envir=globalenv())
[1]  3  7  8 13 17 18 21

> head(ls(envir=baseenv()), 20)
 [1] "-"                 "-.Date"           
 [3] "-.POSIXt"          "!"                
 [5] "!.hexmode"         "!.octmode"        
 [7] "!="                "$"                
 [9] "$.DLLInfo"         "$.package_version"
[11] "$<-"               "$<-.data.frame"   
[13] "%%"                "%*%"              
[15] "%/%"               "%in%"             
[17] "%o%"               "%x%"              
[19] "&"                 "&&"  

在另外两种情况下也可能遇到环境。首先,调用函数时,函数所定义的所有变量都被存储 在属于该函数的环境中(函数及其环境有时称为闭包)。其次,加载包时,包中的函数将 存储于其搜索路径的环境中。

1.6工作空间

启动R环境之后,交互地运行一些语句,直到退出R,这就构成了一个R会话

会话中创建的所有的对象都被临时保存在全局环境.GlobalEnv,称为工作空间

当使用q ()函数或直接关闭RGui窗口退出R环境时,就结束了当前会话。系统提示是否保存工作空间,如果选择“是“,当前环境中的所有对象都会被写入到一个叫做“.RData”的文件中,使用过的命令行历史则会保存在名为“.Rhistory”的文件中

这些文件会被默认地保存在当前R会话的工作目录中。下次从此目录启动R会话时,软件会自动将对象、命令历史载入到工作空间。

R提供了一些管理工作空间的函数

利用这些函数可以方便地完成目录、对象与包的管理

函 数 说 明
getwd () 显示当前工作目录
setwd () 修改当前工作目录
ls () 显示当前工作空间中的所有对象
str () 显示对象的结构
ls.str () 显示对象中每一个变量的结构
exists () 当前工作空间内是否存在某个对象
rm () 删除一个多或多个对象
q () 退出R。在这之前会询问是否保存工作空间
install.packages () 安装包
library () 载入包

直接调用相应的管理函数

> getwd ()	#查看当前工作目录
[1] "C:/Users/Temp"
> ls ()		#查看工作空间所有对象
 [1] "all_data"      "classifier"    "count"         "error"        
 [5] "i"             "index"         "iris.Test"     "iris.Training"
 [9] "lm_fit"        "positions"     "predictions"   "testing"      
[13] "training"      "us.cities"     "x"             "x1"           
[17] "x2"            "x3"            "y" 

如果希望删除内存中的对象,可以使用rm ()函数。嵌套执行rm (list = ls ())则会清除当前工作空间中的全部对象

> rm(i,x1,x2,x3)            #删除I,x1,x2,x3等
> rm (list = ls ()) 
> ls () 
character(0)

1.7 工作区

工作时,我们往往想知道已经创建的变量及其内容。

用 ls 函数即可列出现有变量的名称。
默认情况下,变量名以 . 开 头的是隐藏文件。要查看它们,可传入 all.names=TRUE 参数:

> ls()
[1] "a"              "another_matrix" "avg"           
 [4] "b"              "biao"           "c"             
 [7] "cc"             "csv1"           "d"   
> ls(pattern = "z")
[1] "fenzu1" "fenzu3" "z"      "zz"

ls.str 函数查看变量的结构
browseEnv 也提供类似的功能,但它在网页浏览器中以 HTML 页面的格式显示其输出

rm 函数删除变量来清理区间

rm(变量名)
rm(list = ls())	#删除所有变量,小心使用

1.8文件路径

R 有一个工作目录,默认为文件被读写的地方。我们可以使用 getwd 查看到它的位置,并 使用 setwd 来改变它:

> getwd()
[1] "C:/Users/Administrator/Documents"
> setwd("c:/windows")

注意:每个路径的目录部分由正斜杠分隔。也可以使用双反斜杠来表示 Windows 的路径,不过正斜杠仍为首选:

可以使用 file.path 来从各个目录中创建文件路径。它会自动地在目录名称之间 插入正斜杠。它就像一个更加简单快速的为处理路径而定制的 paste 函数:

> file.path("c:", "Program Files", "R", "R-devel")
[1] "c:/Program Files/R/R-devel"
> R.home()
[1] "E:/R/R-36~1.3"

路径可以是绝对路径(从驱动器名称或网络共享处开始)或相对目录(相对于当前工作目 录)。在后一种情况中,. 用于当前目录而 .. 用于父目录。~ 代表当前用户主目录。path. expand 能将相对路径转换为绝对路径:

> path.expand(".")
[1] "."
> path.expand("..")
[1] ".."
> path.expand("~")
[1] "C:/Users/Administrator/Documents"

basename 只返回文件名,而不包括前面的目录位置。与之相反,dirname 只返回文件的目录:

> file_name <- "C:/Program Files/R/R-devel/bin/x64/RGui.exe" 
> basename(file_name)
[1] "RGui.exe"
> dirname(file_name)
[1] "C:/Program Files/R/R-devel/bin/x64"

1.9RStdio集成开发环境

Rstudio是一个免费的R语言IDE

它具有语法高亮、命令补全、对象浏览、语法错误检查以及断点调试等功能,可以大大提高开发效率

Rstudio可以在https://www.rstudio.com/获取,选择对应的系统平台进行下载安装

默认情况下窗口被分成如下四个区域:

① 代码编辑、数据预览窗口;

② 工作空间、命令历史;

③ 控制台;

④ 文件浏览、绘图、包管理等。

1.10获取帮助

R的内置帮助系统提供了当前已安装包中所有的函数细节和使用示例

使用help.start()打开帮助HTML的帮助文档首页,包括了关于R语言的一整套学习和帮助材料

R提供了不同的函数高效地帮助使用者查找帮助信息

函 数 说 明
help.start () 打开帮助文档首页
help (),? 查看
help.search (),?? 以关键字搜索的形式搜索本地帮助文档
RSiteSearch () 以关键字搜索的形式搜索在线帮助文档
apropos () 列出名称中含有某字符串的所有可用函数
example () 查看某个函数的使用示例

标签:函数,简介,library,第一章,environment,ls,packages,目录
From: https://www.cnblogs.com/simpleness/p/17626104.html

相关文章

  • 无标度网络简介
    一个无标度网络是指其度分布至少在渐近意义下遵循幂律。这意味着,网络中节点的比例P(k)随着度k的增加而呈幂律分布。这种分布在数学上被称为幂律分布,其形式为P(k)∝k^(-γ),其中γ是某个指数。这种分布形式在度k增加时缓慢下降,增加了发现具有非常大度的节点的可能性。这些节点被称为......
  • 幂律分布简介
    幂律分布与其他类型的分布的不同之处在于:1.分布形式:幂律分布的形式为P(x)∝x^(-α),其中α是指数。与幂律分布不同,其他类型的分布可能具有不同的形式,如正态分布、泊松分布、指数分布等。2.尾部特征:幂律分布的尾部非常重,即存在极端值。相比之下,其他类型的分布的尾部可能较轻,即极......
  • servlet系列:简介和基本使用以及工作流程
    目录一、简介二、Servlet实现三、基本使用1.引入pom依赖2.实现Servlet规范,重写service方法3.配置web.xml4.配置Tomcat6.运行四、Servlet的工作流程一、简介Servlet是Server与Applet的缩写,是服务端小程序的意思。使用Java语言编写的服务器端程序,可以生成动态的WEB页,Serv......
  • 操作系统第一章
    系统调用是操作系统为应用程序使用内核功能所提供的接口。广义指令就是系统调用命令,而命令解释器属于命令接口,shell是命令解释器,它也属于命令接口。系统中的缓存全部由操作系统管理,对用户是透明的,操作系统不提供管理系统缓存的系统调用。引入多道程序设计后,程序的执行就失去了......
  • Mybatis简介
    1.1、Mybatis简介●MyBatis是一款优秀的持久层框架●它支持定制化SQL、存储过程以及高级映射。●MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。●MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POjO(PlainOldJavaObjects,普通老式Java......
  • Traffic Control (TC) 简介和使用指南
    TrafficControl(TC)简介和使用指南TrafficControl(TC)是一个在Linux操作系统中用于控制网络流量的工具,允许对网络流量进行限速、排队、分流以及其他管理操作。TC用于实现QoS(QualityofService)和流量整形,能够更好地控制网络资源和提供更好的用户体验。我们主要用于网损控制......
  • LTE和5G无线技术对比简介
    LTE和5G是两种不同的无线通信技术,它们在速度、延迟、容量、覆盖范围和设备兼容性等方面存在差异。LTE,即长期演进技术,是一种基于OFDMA的4G蜂窝网络标准,由3GPP组织制定并发布。它的主要目的是改进3G的空中接入技术,提供更高的数据速率和更低的延迟。LTE支持最高100Mbps的下行速率和50M......
  • Json 基于类 Newtonsoft.Json.Linq.JToken 的应用简介【C# 基础】
    〇、前言在日常开发中,对于Json的使用还是比较频繁的,特别是Json对象和字符串或者实体对象之间的转换。虽然几乎天天用,但是总是感觉没那么明了,今天结合微软的Newtonsoft.Json.Linq类,试着详解一下,把相关的内容列一下。一、Newtonsoft.Json.Linq的层级结构简单画个图,肯定比......
  • LTE和5G无线技术对比简介
    LTE和5G是两种不同的无线通信技术,它们在速度、延迟、容量、覆盖范围和设备兼容性等方面存在差异。LTE,即长期演进技术,是一种基于OFDMA的4G蜂窝网络标准,由3GPP组织制定并发布。它的主要目的是改进3G的空中接入技术,提供更高的数据速率和更低的延迟。LTE支持最高100Mbps的下行速率和50......
  • 第一章 安装Nginx+Lua开发环境
    首先我们选择使用OpenResty,其是由Nginx核心加很多第三方模块组成,其最大的亮点是默认集成了Lua开发环境,使得Nginx可以作为一个WebServer使用。借助于Nginx的事件驱动模型和非阻塞IO,可以实现高性能的Web应用程序。而且OpenResty提供了大量组件如Mysql、Redis、Memcached等等,使在Ng......