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

**说明:**本节中大部分内容摘自书籍《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/dxdnorm(x)
q分位数函数(quantile function)概率P值分位数xqnorm§
r生成随机数随机数n随机向量密度值rnorm(n)

概率分布

分布名称缩写分布名称缩写
Beta 分布betaLogistic 分布logis
二项分布binom多项分布multinom
柯西分布cauchy负二项分布nbinom
(非中心)卡方分布chsiq正态分布norm
指数分布exp泊松分布pois
F分布fWilcoxon 符号秩分布signrank
Gamma分布gammat分布t
几何分布geom均匀分布unif
超几何分布hyperWeibull 分布weibull
对数正态分布lnormWilcoxon 秩和分布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的人

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值