install.packages("lubridate")
library(lubridate)
year("2012-12-12")
#[1] 2012
day("2012-12-12")
#[1] 12
ymd("2012-12-12")
#1 按照 %Y-%m-%d 的方式解析
#[1] "2012-12-12 UTC"
7. ggplot2
ggplot2在每个人“喜爱的R包”的列表中排名很高。 它很容易使用,并且产生一些很好看的图像。 这是介绍我们工作的好方法,有很多资源可以帮助我们开始使用。
8. qcc
qcc 是用于 统计质量控制的库。 早在上世纪五十年代,现已不复存在的西方电气公司正在寻找一种更好检测电话线和电线问题的方法。他们提出了一系列 规则 来帮助识别有问题的线。规则观察一系列数据点的历史平均值,并且基于标准差的偏差,该规则有助于判断一组新的点是否经历均值漂移。
install.packages("qcc")
library(qcc)
# 均值为10的序列,加上白噪声
x
# 测试序列,均值为11
new.x
# qcc 会标记出新的点
qcc(x, newdata=new.x, type="xbar.one")
qcc可帮我们监控网站的交易量,数据库的访问者或者登录名,以及其他许多流程。
9. reshape2
我们经常发现,任何分析中最难的部分是把数据转化成正确的格式。 reshape2 专门用于 “宽”数据表 和“窄”数据表 的转换。一般会和ggplot2 及 plyr一起使用它。
install.packages("reshape2")
library(reshape2)
# 为每一行生成唯一的ID; 这样我们可以稍后转回到宽格式
iris$id
iris.lng
head(iris.lng)
# id Species variable value
#1 1 setosa Sepal.Length 5.1
#2 2 setosa Sepal.Length 4.9
#3 3 setosa Sepal.Length 4.7
#4 4 setosa Sepal.Length 4.6
#5 5 setosa Sepal.Length 5.0
#6 6 setosa Sepal.Length 5.4
iris.wide
head(iris.wide)
# id Species Sepal.Length Sepal.Width Petal.Length Petal.Width
#1 1 setosa 5.1 3.5 1.4 0.2
#2 2 setosa 4.9 3.0 1.4 0.2
#3 3 setosa 4.7 3.2 1.3 0.2
#4 4 setosa 4.6 3.1 1.5 0.2
#5 5 setosa 5.0 3.6 1.4 0.2
#6 6 setosa 5.4 3.9 1.7 0.4
library(ggplot2)
# 为数据集中每个数值列绘制直方图
p
p + geom_histogram() +
facet_wrap(~variable, scales="free")
这是一个快速查看数据集并且获得转接的方法。我们可以使用 melt 函数将宽数据转换为窄数据, 使用 dcast 将窄数据转换为宽数据。
10. randomForest
随机森林 是一个很好的算法。它很容易使用,可以进行监督学习或者无监督学习,它可以与许多不同类型的数据集一起使用,但最重要的是它的高效率!这是它在R中的使用方法。
install.packages("randomForest")
library(randomForest)
# 下载泰坦尼克号幸存者数据集
data
# 将Survived列转为yes/no因子
data$Survived
# 拆分为训练集和测试集
idx
data.train
data.test
# 训练一个随机森林
rf
data=data.train, importance=TRUE, na.action=na.omit)
# 模型中每个变量的重要程度
imp
o
imp[o,]
# no yes MeanDecreaseAccuracy MeanDecreaseGini
#Sex 51.49855 53.30255 55.13458 63.46861
#PClass 25.48715 24.12522 28.43298 22.31789
#Age 20.08571 14.07954 24.64607 19.57423
# 混淆矩阵 [[真反例, 假正例], [假反例, 正正例]]
table(data.test$Survived, predict(rf, data.test), dnn=list("actual", "predicted"))
# predicted
#actual no yes
# no 427 16
# yes 117 195