R手册(Common)--R语言入门

2023-10-29

**说明:**本节中大部分内容摘自书籍《R语言实战(第2版)》

RStudio: Take control of your R code

rstudio

RStudio是R的集成开发环境(IDE)。它包括一个控制台,支持直接代码执行的语法高亮编辑器,以及绘图,历史记录,调试和工作区管理工具。

RStudio可用于开源和商业版本,并可在桌面(Windows,Mac和Linux)或连接到RStudio Server或RStudio Server Pro(Debian / Ubuntu,RedHat / CentOS和SUSE Linux)的浏览器上运行。

在 RStudio 下使用 R 的基本功能
RStudio参考卡片

数据处理一般流程

1

R 数据结构

R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表。
这里写图片描述

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

a <- c(1, 2, 5, 3, 6, -2, 4) 
b <- c("one", "two", "three")
c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) 

d<-1:10 #生成1-10整数向量

2. 矩阵
矩阵是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。

myymatrix <- matrix(vector, nrow=number_of_rows,ncol=number_of_columns, byrow=logical_value, 
  dimnames=list(char_vector_rownames, char_vector_colnames)) 

3. 数组
数组(array)与矩阵类似,但是维度可以大于2。

myarray <- array(vector, dimensions, dimnames) 

4. 数据框
由于不同的列可以包含不同模式(数值型、字符型等)的数据,数据框的概念较矩阵来说更 为一般。

mydata <- data.frame(col1, col2, col3,...) 

5. 因子
变量可归结为名义型、有序型或连续型变量。名义型变量是没有顺序之分的类别 变量。有序型变量表示一种顺序关系,而非数量关系。
类别(名义型)变量和有序类别(有序型)变量在R中称为因子(factor)。因子在R中非 常重要,因为它决定了数据的分析方式以及如何进行视觉呈现。

factor(x = character(), levels, labels = levels,
       exclude = NA, ordered = is.ordered(x), nmax = NA)

6. 列表

列表(list)是R的数据类型中为复杂的一种。一般来说,列表就是一些对象(或成分, component)的有序集合。列表允许你整合若干(可能无关的)对象到单个对象名下。

mylist <- list(object1, object2, ...)

7. 日期值

as.Date(x, "input_format")

日期值的默认输入格式为yyyy-mm-dd

mydates <- as.Date(c("2007-06-22", "2004-02-13"),"%Y-%m-%d") 
format符号 含义 示例
%d 数字表示的日期(0~31) 01~31
%a 缩写的星期名 Mon
%A 非缩写星期名 Monday
%m 月份(00~12) 00~12
%b 缩写的月份 Jan
%B 非缩写月份 January
%y 两位数的年份 07
%Y 四位数的年份 2007

8. 索引和切片
以data.frame为例

df<-data.frame(x=1:10,y=rnorm(10, mean=0, sd=1))
用法 说明
df[3,5]
df['x'] 返回x列,data.frame类型
df$x , df[[x]] 返回向量类型
df[c(1,3,5), ]
df[-(1:5),] 除了1-5列(R 中-是排除的意思)
df[x>3,] 逻辑索引
df[x %in% c(3,5))]

R 运算符

数学运算 描述
+, -, *, /
^, ** 求幂
x%%y 求余(x mod y)。5%%2 的结果为 1
x%/%y 整数除法。5%/%2 的结果为 2
逻辑运算
< ,<= !x
> , >= x \| y
== , != x & y

概率函数

在R中,概率函数统一格式为:[dpqr]distribution_abbreviation()
其中第一个字母表示其所指分布的某一方面:

首字母 说明 主参数 返回值 示例
p 分布函数(distribution function) 分位数x值 概率值F(x)=P{X<=x} pnorm(q)
d 密度函数(density) 分位数x值 密度值f(x)=dF/dx dnorm(x)
q 分位数函数(quantile function) 概率P值 分位数x qnorm§
r 生成随机数 随机数n 随机向量密度值 rnorm(n)

概率分布

分布名称 缩写 分布名称 缩写
Beta 分布 beta Logistic 分布 logis
二项分布 binom 多项分布 multinom
柯西分布 cauchy 负二项分布 nbinom
(非中心)卡方分布 chsiq 正态分布 norm
指数分布 exp 泊松分布 pois
F分布 f Wilcoxon 符号秩分布 signrank
Gamma分布 gamma t分布 t
几何分布 geom 均匀分布 unif
超几何分布 hyper Weibull 分布 weibull
对数正态分布 lnorm Wilcoxon 秩和分布 wilcox
runif(n, min=0, max=1) #均匀分布
rnorm(n, mean=0, sd=1) #正态分布

控制语句与循环语句

控制语句

if(cond) expr
if(cond) cons.expr else alt.expr
if...else if...else
ifelse(test, yes, no)

switch(expr, ...)
  expr:可以为一个数字或字符串
  ...:为一系列选择项列
  若expr为字符串,...列表项为name_i=expr_i
  若expr为数字,...列表项按顺序输出

循环语句

for(var in seq) expr
while(cond) expr
repeat expr

循环语句关键字

break:跳出整个循环语句
continue: 跳出本次循环
next:跳出本次loop

自定义函数

function( arglist ) {
  expr
  return(object) }

… (dot-dot-dot):此特殊参数可以捕获任何数量的参数

example:

>>>"%s*%" <- function(x,y) rep(x,y) #自定义二元符号
>>>"a"%s*%5
>>>"aaaaa"

调试

函数 用法
stop(message) 停止执行当前表达式返回message(常与if配合检查自定义函数参数)
stopifnot(logit1,logit2,logit3…) 检查每个参数为TRUE,否则停止执行当前表达式返回message

拟合线性模型formula

在R中,拟合线性模型基本的函数就是lm(),格式为:
myfit <- lm(formula, data)

formula指要拟合的模型形式,
data是一个数据框,包含了用于拟合模型的数据。
结果对象(本例中是myfit)存储在一个列表中,包含了所拟合模型的大量信息。

表达式(formula) 形式如下:
Y ~ X1 + X2 + ... + Xk
~左边为响应变量,右边为各个预测变量,预测变量之间用+符号分隔。

formula常用符号 说明 示例
~ 分隔符,左边为响应变量,右边为解释变量
+ 预测变量分隔符 y~x+y
: 预测变量交互项 y~x+y+x:y
* 包含所有交互项的简洁方式 代码y~ x * z可展开为y ~ x + z + x:z
^ 交互项的最高次数 代码 y ~ (x + z + w)^2 可展开为 y ~ x + z + w + x:z + x:w + z:w
.(dot) 除因变量外的所有变量 y~.
- 移除一项 y~xzw–x:z:w可展开为 y ~ (x + z + w)^2
-1 移除截距 y~x-1
I() 算术 y~x+I(x^2)
function 数学函数 log(y) ~ x + z + w

R语言可视化

除了基础图形,grid、lattice和ggplot2软件包也提供了图形系统,它们克服了R基础图 形系统的低效性,大大扩展了R的绘图能力。

  • grid图形系统可以很容易地控制图形基础单元,给予编程者创作图形的极大灵活性。
  • lattice包通过一维、二维或三维条件绘图,即所谓的网格图形(trellis graph)来对多元变量关 系进行直观展示。
  • ggplot2包极大地扩展 了R绘图的范畴,提高了图形的质量。
系统 基础安装中是否包含 是否需要显式加载
base
grid
lattice
ggplot2

data.table 和 tidyverse

data.table
R语言data.table包是自带包data.frame的升级版,用于数据框格式数据的处理,最大的特点快。
包括两个方面,一方面是写的快,代码简洁,只要一行命令就可以完成诸多任务。
另一方面是处理快,内部处理的步骤进行了程序上的优化,使用多线程,甚至很多函数是使用C写的,大大加快数据运行速度。因此,在对大数据处理上,使用data.table无疑具有极高的效率。

tidyverse
hadley

tidyverse是一系列包的组合,构建了一套完整的数据分析生态链,提供了一套整洁的数据导入,分析和建模方法,刷新了R语言原有的数据科学体系。

作者Hadley Wickham在R语言数据科学领域是个鼎鼎有名的大人物,被称为一个改变了R的人

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R手册(Common)--R语言入门 的相关文章

  • R手册(Tidy+Transform)--tidyr

    文章目录 Reshape Data Split or Unit Cells Handle Missing Values tidyr Easily tidy data with spread and gather functions Resh
  • R手册(Tidy+Transform)--缺失处理(naniar and simputation)

    文章目录 naniar 缺失数据摘要 阴影矩阵 可视化缺失值变量分布关系 simputation make imputation simpler for missing data 缺失值是指粗糙数据中由于缺少信息而造成的数据的聚类 分组 删
  • R手册(Parallel Computing)--foreach

    R手册 Parallel Computing foreach foreach foreach 后端支持 library doParallel 为foreah包提供一个并行的后端 n cores lt detectCores logical
  • R手册(Tidy+Transform)--forcats

    forcats 分类变量数据处理 forcats for factor 函数 说明 factor x levels labels ordered as factor x fct expand f 添加更多级别 fct explicit na
  • R手册(Machine Learning)--mlr (Part 2)

    文章目录 Configuration 配置 Parallelization 并行 Imputation 插补 Feature Extraction 特征提取 1 Feature filtering 特征筛选 2 Feature select
  • R手册(Common)--R语言入门

    说明 本节中大部分内容摘自书籍 R语言实战 第2版 文章目录 RStudio Take control of your R code 数据处理一般流程 R 数据结构 R 运算符 概率函数 控制语句与循环语句 自定义函数 调试 拟合线性模型f
  • R手册(Import)--rvest

    文章目录 解析html 提取组件 提取 修改和提交形式的函数 浏览网站 解析html 函数 说明 read html x encoding x为a url或 a local path html nodes x css xpath 通过使用
  • R手册(Common)--tidyverse+tibble

    tidyverse是一系列包的组合 构建了一套完整的数据分析生态链 提供了一套整洁的数据导入 分析和建模方法 刷新了R语言原有的数据科学体系 文章目录 tidyverse Usage core tidyverse packages Impo
  • R手册(Common)--面向对象(R6 and S4)

    R 主要面向统计计算 似乎很少会用到面向对象的编程方法 但在统计计算中 在下列情形中使用面向对象的编程方法可以编程更有效率 文章目录 面向对象R6类 面向对象S4类 自定义S4类 实例化函数 S4的泛型函数 面向对象R6类 R 的面向对象
  • R手册(Visualise)--geomnet(ggplot2 extensions)

    文章目录 geomnet 返回ggplot2扩展主目录 geomnet Geom 网格图 关系图 geom net aes from id to id fontsize data stat net position identity na
  • R手册(Visualise)--ggplot2

    文章目录 Overview Geoms 基本图形 单变量 双变量 三变量 文本 误差可视化 地图 Stats Scales 常用标尺格式 坐标轴标尺 Color and fill scales Shape and size scales C
  • R手册(Common)--R语言基础包

    文章目录 环境设置 输入输出 文件操作 进度条 数据创建 数据选取及数据信息 列联表 内置常量 数学 矩阵运算 模型 其他函数 R语言基础包 base stats 环境设置 系统函数 函数 说明 options 显示或设置当前选项 digi
  • R手册(NLP)--wordcloud2

    文章目录 wordlcoud2函数 letterCloud函数 shiny支持 wordcloud2 R interface to wordcloud for data visualization Wordcloud2主要包括两个函数 wo
  • R手册(Syntax)--magrittr

    magrittr pipe lhs gt rhs forward pipe lhs为rhs第一个参数时 x gt f y 等价于 f x y lhs在任意位置时 用点 代替 z gt f x y arg 等价于 f x y arg z rh
  • R手册(Time Series)--forecast and prophet

    文章目录 forecast for Time Series and Linear Models 时间序列分析 模型 预测 ggplot2扩展 模型评估 prophet 构建模型 模型预测 可视化 交叉验证 时间序列分析 Time Serie
  • R手册(NLP)--text2vec

    文章目录 分词器 I O 处理 迭代器 支持 create 函数 向量化 主题模型 text2vec 这个 R 包提供了高性能和简洁的 API 来进行文本分析 自然语言处理 分词器 word tokenizer strings 英语分词器
  • R手册(Common)--data.table

    R语言data table包是自带包data frame的升级版 用于数据框格式数据的处理 最大的特点快 包括两个方面 一方面是写的快 代码简洁 只要一行命令就可以完成诸多任务 另一方面是处理快 内部处理的步骤进行了程序上的优化 使用多线程
  • R手册(Communicate)--R Markdown

    文章目录 Overview Rmd Structure YAML Header Parameters Set render options with YAML 初始文档信息 Text Embed code with knitr syntax
  • R手册(Visualise)--gganimate(ggplot2 extensions)

    文章目录 gganimate Create easy animations with ggplot2 返回ggplot2扩展主目录 gganimate Create easy animations with ggplot2 GitHub链接
  • R手册(Visualise)--GGally(ggplot2 extensions)

    本站已停止更新 查看最新内容请移至本人博客 Wilen s Blog 文章目录 GGally ggmatrix ggplot2矩阵 ggpairs ggplot2广义配对图 ggscatmat 纯粹定量变量的传统散点图矩阵 返回ggplot

随机推荐

  • 面试经典(14)--二叉树镜像

    题目描述 输入一个二叉树 输出该二叉树的镜像 分析与解法 使用先序遍历方式 如果节点是非叶子节点 就交换左子树和右子树指针 注意退出条件即可 掌握前序遍历这个题目解这道题目难度不大 代码如下 struct Node Node m pLeft
  • IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录

    上面是我的微信和QQ群 欢迎新朋友的加入 1 下载 地址 https www nxp com cn products processors and microcontrollers arm processors i mx applicati
  • 数据分析回头看2——重复值检查/元素替换/异常值筛选

    0 前言 这部分内容是对Pandas的回顾 同时也是对Pandas处理异常数据的一些技巧的总结 不一定全面 只是自己在数据处理当中遇到的问题进行的总结 1 当数据中有重复行的时候需要检测重复行 方法 使用pandas中的duplicated
  • 提高Python编程效率的十个技巧

    1 模块化编程 将代码拆分为模块和函数 提高可重用性和可维护性 合理组织代码 使其易于阅读和理解 2 利用Python标准库 Python标准库提供了众多功能强大的模块和工具 如os re和datetime等 熟悉并善于使用标准库可以加快开
  • PAT C入门题目-7-30 念数字 (15 分)(关于string.h头文件)

    7 30 念数字 15 分 输入一个整数 输出每个数字对应的拼音 当整数为负数时 先输出fu字 十个数字对应的拼音如下 0 ling 1 yi 2 er 3 san 4 si 5 wu 6 liu 7 qi 8 ba 9 jiu 输入格式
  • linux -- 命令行中大于号、小于号的用法

    语法 命令 lt 文件 这是将文件作为命令输入 命令 lt 文件1 gt 文件2 将文件1输入到命令中 然后将结果输出到文件2中
  • tensorflow各版本下载地址

    https pypi org project tensorflow gpu 1 13 0 files 把13改对你想要的版本 转载于 https www cnblogs com xpylovely p 11609250 html
  • 2022 re:Invent 凌云驭势 重塑未来

    2022年11月29日 一年一度的亚马逊 re Invent全球大会在拉斯维加斯再度上演 这是亚马逊云科技第11年举办re Invent 来自全球的5万多客户和合作伙伴参加了此次线下盛会 还有超过30万人线上参会 在此次大会上 亚马逊云科技
  • 埃斯顿服务器上电无显示,埃斯顿伺服常见现象报警及排除

    用户在试用埃斯顿伺服电机时可能会遇见以下的问题 在此我整理一下 希望能帮助到大家 一 过载报警A04 1 伺服电机的配线有误或配线有漏 1 电机U V W相线接错 2 伺服电机侧连接器的插入是否不良 2 伺服驱动器与电机的型号不匹配 检查驱
  • Android 内存泄漏的原因以及解决方案

    内存泄漏是什么 内存泄漏即 ML Memory Leak 指 程序在申请内存后 当该内存不需再使用 但 却无法被释放 归还给 程序的现象 内存泄漏的原因以及解决方案 内存泄漏的原因归根到底就是当需要被回收变量的内存被其他变量引用持有 导致内
  • 光照 (4) 镜面光贴图示例

    通过使用镜面光贴图我们可以可以对物体设置大量的细节 比如物体的哪些部分需要有闪闪发光的属性 我们甚至可以设置它们对应的强度 镜面光贴图能够在漫反射贴图之上给予我们更高一层的控制 step1 对镜面光贴图使用一个不同的纹理单元 见纹理 在渲染
  • 软考高级之系统架构师之项目管理

    今天是2023年09月06日 距离软考高级只有58天 加油 概念 临时性 是指每一个项目都有一个明确的开始时间和结束时间 临时性也指项目是一次性的 风险 风险具有以下特性 客观性 偶然性 相对性 社会性 不确定性 风险的四要素 事件 原因
  • 邮件服务器测试方法

    邮件服务器测试方法一 测试是在问题邮件服务器上完成的 二 登陆问题邮件服务器 使用nslookup命令查看需测试的邮件服务器域名解析记录 找到测试端的DNS可以解析到的MX记录 三 通过TELNET命令进行测试 一 TELNET需注意的事项
  • 什么是爬虫?爬虫的具体作用?

    什么是爬虫 答 爬虫的官方名字 spider 爬虫又被称之为网络蜘蛛 网络机器人等 就是模拟客户端发送网络请求 接收请求响应 按照一定的规则自动的抓取互联网信息的程序 爬虫的具体作用 答 数据采集 搜索引擎 软件测试 短信轰炸等等 一般是用
  • Web前端面试指导(三十八):js延迟加载的方式有哪些?

    题目点评 主要考察对程序的性能方面是否有研究 程序的性能是一个项目不断地追求的 通常也是项目完成后需要长期做的一件事情 像腾讯QQ依然对程序的性能不断地做优化 让用户的体验更好 性能优化的核心思想就是快 可以预先准备数据 如缓存的使用 可以
  • 使用C++ 编写嵌入式应用程序

    大多数嵌入式工程师使用C语言来编写Cortex M系列MCU 的程序 大家总觉得C 是用来编写Windows 或者Linux 应用程序的 特别是硬件工程师 也许压根就没有使用C 来编写程序 当我们阅读Mbed OS 的代码时却发现 许多是使
  • mysql--备份/主从同步/安装

    1 编写脚本 支持让用户自主选择 使用mysqldump还是xtraback全量备份 bin bash date date F sock S data mysql mysql3306 socket mysql sock dbdir back
  • vue iframe 刷新保留在原来的页面

    公司有个需求 我们的项目是微服务项目 每个tab里面的内容都是 iframe 现在需求是点击刷新 F5 等刷新 iframe 还保留在原来的页面 1 iframe 子页面 router js 中监听路由变化 并存储当前页面的路由 route
  • 【Linux】Ubuntu基本使用与配置, 以及常见问题汇总(一)

    前言 大学期间 感觉很多时候学习课外知识都是被推着往前走 很多内容并没有深入去学习 知识的记录受限于所学比较片面 如今渐渐意识到似乎并没有建立起相关知识的体系架构 缺乏一个系统学习并整理的过程 本文将以Ubuntu系统为例 来整理一些Lin
  • R手册(Common)--R语言入门

    说明 本节中大部分内容摘自书籍 R语言实战 第2版 文章目录 RStudio Take control of your R code 数据处理一般流程 R 数据结构 R 运算符 概率函数 控制语句与循环语句 自定义函数 调试 拟合线性模型f