文章目錄
  1. 1. R语言相关教材
  2. 2. 内容架构
    1. 2.1. shiny
    2. 2.2. 世界地图
    3. 2.3. 美国地图
    4. 2.4. 各州地图
    5. 2.5. 失业分布地图
  3. 3. R历史简介
  4. 4. 开发工具
    1. 4.1. R的下载和安装
    2. 4.2. R的IDE介绍: RStudio
  5. 5. R的基础使用
    1. 5.1. R作为科学计算器
    2. 5.2. R 中的常量和变量
    3. 5.3. 给变量赋值
    4. 5.4. 变量空间
  6. 6. 向量
    1. 6.1. 生成向量
    2. 6.2. 计算基本统计量
    3. 6.3. 生成数列seq
    4. 6.4. 生成数列rep
    5. 6.5. 请尝试生成以下数列
    6. 6.6. 选取向量中的元素
    7. 6.7. 向量常用函数
    8. 6.8. 向量的循环计算
    9. 6.9. 向量的函数计算
    10. 6.10. 逻辑向量和比较运算符
    11. 6.11. 使用逻辑表达式来选择向量
    12. 6.12. 逻辑表达式活用
  7. 7. 作图
    1. 7.1. 基础作图介绍
    2. 7.2. 散点图
    3. 7.3. 连线图
  8. 8. 三维图,等值线图,等值色图
    1. 8.1. 三维图
    2. 8.2. 等值线图
    3. 8.3. 等值色图
  9. 9. 帮助
    1. 9.1. R 的帮助文档
    2. 9.2. 通过网络获取帮助
    3. 9.3. R Package 操作
    4. 9.4. Datacamp

R语言相关教材

  1. 学习R
  2. 统计建模与R软件
  3. R数据可视化手册
  4. R语言经典实例
  5. R语言实战
  6. R语言与统计分析
  7. R语言编程艺术
  8. ggplot2:数据分析与图形艺术

内容架构

  1. R语言简介: 软件安装, 获取帮助, 包的安装
  2. 数据类型
  3. 数据结构: 向量, 矩阵, 数组, 数据框, 因子, 列表
  4. 输入输出: 读取各种数据, 保存数据
  5. 数据处理: dplyr包
  6. 控制流
  7. 函数
  8. 统计分析
  9. 作图: ggplot2包(见pdf)
  10. knitr, markdown(本课件, 可重复性研究)
  11. shiny(安装shiny包, 初始文档)
  12. 地图相关应用
  13. 文本数据挖掘

shiny

shinyintro

世界地图

worldmap

美国地图

usamap

各州地图

statemap

失业分布地图

unemploymap

R历史简介

  • 奥克兰大学Ross Ihaka, Robert Gentleman 在20世纪90年代初开发
  • 前身是20世纪70年代的S语言(贝尔实验室开发)
  • 免费, 开源, 由20人左右的核心团队维护

开发工具

R的下载和安装

R的IDE介绍: RStudio

可用于编写R的集成开发环境:

  • Emacs+ESS(快捷键多, 难度大)
  • Eclipse/Architect(Java社区)
  • RStudio
  • Revolution-R
  • Live-R

我们主要使用 RStudio(界面介绍)

R的基础使用

R作为科学计算器

  • 加减乘除: +, -, *, /, %/%, %%
  • 平方, 开方: ^, **, sqrt
  • 指数, 对数: exp, log
  • 三角函数: sin, cos, tan
  • 排列组合: choose

R 中的常量和变量

R中变量名命名规则:

  • 数字、字母、句点组成
  • 首字符不能是数字
  • 区分大小写

三种常量:逻辑型、数值型、字符型。

  • 逻辑型:TRUE,FALSE。
  • 数值型:123,123.45,1.234e10,2.1-3.5i
  • 字符型:”小明”,”Weight”
  • 缺失值:NA

给变量赋值

无需声明, 直接赋值即可

  • <- 最常用
  • = 不建议使用, 和假设检验的等号容易混淆
  • -> 不建议使用, 改变方向会降低代码可读性
  • assign 函数, 很少使用
1
x <- 1; y <- 2; z <- x + y; z
1
## [1] 3

变量空间

  • 列出已经定义的所有变量: ls(), ls.str()
  • 删除变量: rm()
  • 限制使用: rm(list = ls())

向量

生成向量

使用c()操作来生成向量

1
x <- c(1,2,3); x
1
## [1] 1 2 3
1
y <- c(2*5, 3-4, 12/5, pi); y
1
## [1] 10.000000 -1.000000  2.400000  3.141593
1
z <- c(x, y); z
1
## [1]  1.000000  2.000000  3.000000 10.000000 -1.000000  2.400000  3.141593

计算基本统计量

基本统计函数:(并非全部)

  • min, max, range, sum
  • mean, median, quantile
  • sd, var, cor, cov
1
2
x <- c(1,2,3,4,5)
c(min(x), max(x), mean(x), median(x), sd(x), var(x))
1
## [1] 1.000000 5.000000 3.000000 3.000000 1.581139 2.500000

生成数列seq

1
1:5
1
## [1] 1 2 3 4 5
1
seq(from = 4, to = 10, by = 2)
1
## [1]  4  6  8 10
1
seq(from = 0, to = 2, length.out = 5)
1
## [1] 0.0 0.5 1.0 1.5 2.0
1
seq(from = 0, to = 2, length.out = 6)
1
## [1] 0.0 0.4 0.8 1.2 1.6 2.0

生成数列rep

1
rep(1, times = 5)
1
## [1] 1 1 1 1 1
1
rep(c(1,2), times = 3)
1
## [1] 1 2 1 2 1 2
1
rep(c(1,2), each = 3)
1
## [1] 1 1 1 2 2 2

请尝试生成以下数列

1
2
##  [1]  6.0  5.5  5.0  4.5  4.0  3.5  3.0  2.5  2.0  1.5  1.0  0.5  0.0 -0.5
## [15] -1.0 -1.5 -2.0 -2.5 -3.0 -3.5 -4.0 -4.5 -5.0 -5.5 -6.0
1
2
##  [1]  1  3  5  2  4  6  3  5  7  4  6  8  5  7  9  6  8 10  7  9 11  8 10
## [24] 12 9 11 13 10 12 14
1
##  [1] -1  0  1  2  3  3  4  5  6  7  7  8  9 10 11

选取向量中的元素

1
2
x <- 2:5
x[1]
1
## [1] 2
1
x[c(1,4)]
1
## [1] 2 5
1
x[2:3]
1
## [1] 3 4
1
x[-1]
1
## [1] 3 4 5

向量常用函数

length, sort, order

1
2
x <- c(4,6,2,7,1)
length(x)
1
## [1] 5
1
sort(x)
1
## [1] 1 2 4 6 7
1
order(x)
1
## [1] 5 3 1 2 4
1
x[order(x)]
1
## [1] 1 2 4 6 7

向量的循环计算

向量计算的循环法则

1
2
x <- 1:5; y <- 5:1
x + y
1
## [1] 6 6 6 6 6
1
x - 1
1
## [1] 0 1 2 3 4
1
x^2
1
## [1]  1  4  9 16 25

向量的函数计算

1
log(x)
1
## [1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379
1
sin(x)
1
## [1]  0.8414710  0.9092974  0.1411200 -0.7568025 -0.9589243
1
2
z <- 1:3 
x + z
1
2
## Warning in x + z: longer object length is not a multiple of shorter object
## length
1
## [1] 2 4 6 5 7

逻辑向量和比较运算符

  • 逻辑值: TRUE(T), FALSE(F)
  • 比较运算符: ==, !=, <, >, <=, >=, &, |, !
  • all(), any() 函数
1
1 < 3
1
## [1] TRUE
1
x == 3
1
## [1] FALSE FALSE  TRUE FALSE FALSE
1
any(x == 3); all(x == 3)
1
## [1] TRUE
1
## [1] FALSE

使用逻辑表达式来选择向量

1
2
fib <- c(0,1,1,2,3,5,8,13,21,34)
fib[fib < 10]
1
## [1] 0 1 1 2 3 5 8
1
fib[fib %% 2 == 0]
1
## [1]  0  2  8 34
1
fib[fib < mean(fib)]
1
## [1] 0 1 1 2 3 5 8

逻辑表达式活用

  1. 请写出1-100之间不能被3整除的数
  2. 请写出1-100之间既不能被3整除也不能被5整除的数
  3. 圆周上从0°开始逆时针均匀选取100个点, 其正弦值有多少小于0.5?

作图

基础作图介绍

1
2
3
x <- seq(from = -2*pi, to = 2*pi, length.out = 100)
y <- sin(x)
plot(x,y)

散点图

1
plot( x, y, main = "scatter", xlab = "x-lab", ylab = "y-lab")

连线图

1
plot(((-50):50)/25,(((-50):50)/25)^3,type = "l")

三维图,等值线图,等值色图

1
2
3
4
5
6
7
8
9
10
11
x <- seq(-3,3, length=100)
y <- x
f <- function(x,y,ssq1=1, ssq2=2, rho=0.5){
det1 <- ssq1*ssq2*(1 - rho^2)
s1 <- sqrt(ssq1)
s2 <- sqrt(ssq2)
1/(2*pi*sqrt(det1)) * exp(-0.5 / det1 * (
ssq2*x^2 + ssq1*y^2 - 2*rho*s1*s2*x*y))
}

z<- outer(x, y, f)

三维图

1
persp(x, y, z)

等值线图

1
contour(x, y, z)

等值色图

1
image(x, y, z)

帮助

R 的帮助文档

  • help.start()
  • help(mean)
  • ?mean
  • example(mean), example(image)
  • ??mean
  • apropos(“glm”, mode = “function”)

通过网络获取帮助

  • RSiteSearch(“mean”)
  • stackoverflow.com search for [r] ggplot2
  • google

R Package 操作

  • install.packages(“ggplot2”)
  • library(ggplot2)
  • update.packages()
  • installed.packages()
  • remove.packages()
  • help(package = “ggplot2”)
  • packages on CRAN(in help.start())
  • Rdocumentation
  • CRAN Task Views.

Datacamp

  1. 注册: https://www.datacamp.com
  2. 参加group: https://www.datacamp.com/groups/stat_hdu
  3. 邀请链接: https://www.datacamp.com/groups/750deb7ab588c92ae2a64e462c2a9d92ba131aa0/invite
文章目錄
  1. 1. R语言相关教材
  2. 2. 内容架构
    1. 2.1. shiny
    2. 2.2. 世界地图
    3. 2.3. 美国地图
    4. 2.4. 各州地图
    5. 2.5. 失业分布地图
  3. 3. R历史简介
  4. 4. 开发工具
    1. 4.1. R的下载和安装
    2. 4.2. R的IDE介绍: RStudio
  5. 5. R的基础使用
    1. 5.1. R作为科学计算器
    2. 5.2. R 中的常量和变量
    3. 5.3. 给变量赋值
    4. 5.4. 变量空间
  6. 6. 向量
    1. 6.1. 生成向量
    2. 6.2. 计算基本统计量
    3. 6.3. 生成数列seq
    4. 6.4. 生成数列rep
    5. 6.5. 请尝试生成以下数列
    6. 6.6. 选取向量中的元素
    7. 6.7. 向量常用函数
    8. 6.8. 向量的循环计算
    9. 6.9. 向量的函数计算
    10. 6.10. 逻辑向量和比较运算符
    11. 6.11. 使用逻辑表达式来选择向量
    12. 6.12. 逻辑表达式活用
  7. 7. 作图
    1. 7.1. 基础作图介绍
    2. 7.2. 散点图
    3. 7.3. 连线图
  8. 8. 三维图,等值线图,等值色图
    1. 8.1. 三维图
    2. 8.2. 等值线图
    3. 8.3. 等值色图
  9. 9. 帮助
    1. 9.1. R 的帮助文档
    2. 9.2. 通过网络获取帮助
    3. 9.3. R Package 操作
    4. 9.4. Datacamp