目录

1、R简介

1.1 R: 用于统计分析的语言

1.2 R的下载与安装

2、数据的载入与存储

3、R的数据结构

3.1 R基本数据类型

3.2 R的数据处理对象

3.3 常用运算符

4、统计分析实例——数据载入与初步处理

5、R的控制流


1、R简介

1.1 R: 用于统计分析的语言

什么是R:
不同于JAVA等编程语言,R是一门用于统计分析、数据挖掘的语言
为什么学R:
• 高质量、丰富的统计工具
• 免费的开源软件 (查看源代码、自己写包)
• 优质的作图能力
• 帮助功能完善(通过help或?**查看各种函数的使用方法和例子)
• 比SPSS灵活
• 比Python更适合统计分析(可调取更多中间结果变量)
• 比Stata, SAS经济实惠

1.2 R的下载与安装

R: 专业的统计编程语言
下载R: https://cran.r-project.org/
下载RStudio https://www.rstudio.com/
学习资源:
R官方Manuals
https://cran.r-project.org/manuals.html R Studio官网的Resource – Cheatsheet
https://www.rstudio.com/resources/cheatsheets/
An Introduction to R
https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf
Advanced R
https://adv-r.hadley.nz/index.html
R built-in datasets
https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/00Index.html
Tips:
?**
help(**)

2、数据的载入与存储

• txt数据
read.table()
read.delim()
• csv数据
read.csv()
• excel数据
read.xls()
• SPSS数据
read.spss()
• R内置数据集
data()
• R packages数据
data(nhefs, package="causaldata")
• 保存为txt数据
write.table()
• 保存为csv数据
write.csv()
• 保存为R数据
save( ()
• 保存R工作空间的映像
save.image( )

数据读取方式的多种选择
data.table
readr

Taxi Trip Dataset
14,776,615 * 11
Vroom
https://www.tidyverse.org/blog/2019/05/vroom-1-0-0/ Source: 
https://cran.r-project.org/web/packages/vroom/vignettes/benchmarks.html

3、R的数据结构

3.1 R基本数据类型

1. 字符 character
字符串的连接表示、长度、合并字符(串)、逻辑判断、转义字符
2. 数字 number
数值 numeric – 5, 5.5
整数 integer – 5L
复数 complex – 9+3i
3. 逻辑 logical
TRUE, FALSE

3.2 R的数据处理对象

1. 向量 vector: 相同基本类型的数据序列
向量组合时的类型强制转换、运算规则、数值向量、索引、命名
2. 列表 list
与向量的区别
3. 矩阵 matrix
矩阵的赋值、命名行列、运算、多个矩阵组合
4. 数据框 data frame (详见实例)
5. 因子 factor
多用于分类变量、生成标签

<- 和 = 都表示赋值
向量的创建
name <- c('张三','李四')

: 或者 seq
2011 : 2017
seq(from = -5, to = 5, length = 1000)
#拼接多个对象,字符串形式返回
paste0()
#会在每两个拼接元素之间自动加上空格
cat() 

rep(x,times)    #整体循环
rep(x,each)    #依次循环
data.frame()    #数据框对象

位置索引
1开始,左闭又闭
length(x)    #序列长度

bool索引
x[x > 20]

which将bool索引转换成位置索引
index <- which(x > 20)

#数据类型识别,返回数据类型
class()

#数据类型的判断,返回TRUE 或者 FALSE
is.integer
is.numeric
is.character
is.Date

#数据类型转换,截断整数部分
as.*
as.Date(x = c('20180629,,'20171212'), format = '%Y%m%d')
parse_date_time(x, orders)    #日期转换更好用

NA    #缺失值
NULL    #空值
NaN    #不确定值
Inf    #无限值
都可以用is.*

3.3 常用运算符

算术运算符
+ 加
- 减
* 乘
/ 除
^ 指数
%% 余数
%/% 整除

比较运算符 逻辑运算符
& 同时成立
&& 与
| 至少其
一成立
|| 或
! 非
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

杂项运算符
: 生成序列
%in% 一个元素是否属于向量
%*% 矩阵乘

4、统计分析实例——数据载入与初步处理

Data Source
National Health and Nutrition Examination Survey
Access
R built-in dataset
package: causaldata
item name: nhefs
Package
base
dplyr4

R的统计分析常用包
Dplyr
ggplot2

#下载第三方包,一次可以下载多个,逗号隔开
install.packages(package_name)
install.packages('xlsx')

#加载第三方包,一次加载一个
library(pack_name)    #没有提前下载好,报错 
#或者
require(package_names)    #警告

#查看帮助文档
#知包知函数
help(lda,package = 'MASS')
?lda

#知函数未知包
#help.search('dbscn')
?? dbcan
 
#知包未知函数
apropos('test')

#未知函数未知包
RSiteSearch('')

5、R的控制流

条件控制

if (condition) {expr}
 dplyr::case when()
 switch(expr1, expr2 = val2, expr3 = val3, ...)


循环控制
中止控制 – break, next
for 循环

for (i in vec/list) { 
     [do something]
 }
 repeat, while
 while (condition) [do something]
 repeat([do something])Note: No 【do {action} while (condition)】 syntax in R

自编函数

func_name <- function(para1, para2) {
     [Function body]
     return res
 }func_name(x1, y1)