目录
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)