R语言中,你最常用的软件包有哪些,请简述功能及特点?

Python012

R语言中,你最常用的软件包有哪些,请简述功能及特点?,第1张

作者:任坤

链接:http://www.zhihu.com/question/21792740/answer/27104765

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

reshape2 横向、纵向做数据变换,例如把纵向堆叠在数据库中的证券行情数据转换成一个按照不同证券代码横向排列,按照时间纵向排列收盘价的数据表

stringr 方便地用正则表达式做批量字符串操作,可做检测、匹配、替换、计数等等

lubridate 方便地做日期/时间操作,各种标准化时间和时区的处理

plyr 轻松地在vector, list, data.frame之间做分组变换,实现拆分、变换、合并的操作

dplyr 轻松地处理data.frame, data.table以及多种数据库为基础的数据,实现选择、变换、分组等等,速度很快

RODBC 连接ODBC数据库接口

RSQLite 连接轻量级SQLite数据库连接

jsonlite 读写json文件

yaml 读写yaml文件,实现灵活的程序外部配置

Rcpp, Rcpp11 写C++03/11代码直接编译后给R调用,大幅提升算法性能

data.table 快速处理较大数据表

ggplot2 高级绘图,一套统一的语法实现复杂图像组合绘制

zoo 时间序列数据的预处理,比如滚动平均等等

rmarkdown 用Markdown写文档并可方便地运行R代码与绘图

knitr 自动文档生成

devtools 扩展包开发必备,在线安装托管的扩展包,检查扩展包是否符合CRAN标准等等

testthat 扩展包自动测试

pipeR 自己写的高性能、低损耗、分工明确的管道操作(pipeline operator)扩展包,使得数据变换流程化

=== 专业领域(数值计算) ===

rootSolve 非线性方程求根、ODE均衡状态解

Rsolnp 非线性优化

=== 专业领域(计量和统计学习) ===

sde 随机微分方程模拟和统计推断

KernSmooth 非参数平滑与分布估计

cpm Change Point Detection 实时分布或者统计关系变化检测

stats4 可用来方便地做MLE估计

R中还有一个有趣的sqldf包,它可以让你用SQL来操作dataframe,这种功能能让会R的人能练习SQL,会SQL的人能练习R,不得不感叹R语言的强大技能和神奇魅力。 \x0d\x0a 当然也可以将R与外部数据库连接,直接在R中操作数据库,并生成最终结果,这也是一种可行的方法。在R中连接数据库需要安装其它的扩展包,根据连接方式不同我们有两种选择:一种是ODBC方式,需要安装RODBC包并安装ODBC驱动。另一种是DBI方式,可以根据已经安装的数据库类型来安装相应的驱动。因为后者保留了各数据库原本的特性,所以个人比较偏好用DBI连接方式。有下面这几种主要的包提供了DBI连接:RMySQL,RSQLite,ROracle,RPostgreSQL。由名字看得出它们分别对应了几种主流的数据库。 \x0d\x0a 注:以上文字来自R-blogger—_《在R语言中使用SQL》 \x0d\x0a 值得一提的是在运用sqldf包时可能要对R软件升级到3.1.0版以上,否则安装不会成功,这里简单介绍一种在Windows环境下对R软件自动升级的方法。 \x0d\x0a Windows上升级R语言:\x0d\x0a install.packages("installr")\x0d\x0a library(installr) #加载包\x0d\x0a updateR()\x0d\x0a\x0d\x0a之后选择“确定”就可以自动更新了 \x0d\x0a 虽然在R语言中有很多优秀的函数如aggregate()和daply()可以对数据框统计,但sql功能强大,不仅能实现数据的清洗、统计、运算,还可以实现数据存储、控制、定义和调用。越来越多的公司在招聘的时候都要求数据分析师除了要掌握统计建模和数据挖掘的理论方法和编程能力外,还要求其具备使用sql的能力,楼主也在积极学习sql当中。 \x0d\x0a 下面是我利用sqldf()完成的一些程序,虽然简单,但这是学习的第一步\x0d\x0a>name subject score stuid stuscore library(sqldf)\x0d\x0a\x0d\x0a1.计算每个人的总成绩并排名(要求显示字段:姓名,总成绩)\x0d\x0a>sqldf('select name,sum(score) as allscore from stuscore group by name order by allscore')\x0d\x0a name allscore\x0d\x0a1 张三 239\x0d\x0a2 李四 240\x0d\x0a\x0d\x0a2.计算每个人的总成绩并排名(要求显示字段: 学号,姓名,总成绩)\x0d\x0a>sqldf('select name,stuid,sum(score) as allscore from stuscore group by name order by allscore')\x0d\x0a name stuid allscore\x0d\x0a1 张三 1 239\x0d\x0a2 李四 2 240\x0d\x0a\x0d\x0a3.计算每个人单科的最高成绩(要求显示字段: 学号,姓名,课程,最高成绩)\x0d\x0a>sqldf('select stuid,name,subject, max(score) as maxscore from stuscore group by stuid')\x0d\x0a stuid name subject maxscore\x0d\x0a1 1 张三数学 89\x0d\x0a2 2 李四数学 90\x0d\x0a\x0d\x0a4.计算每个人的平均成绩(要求显示字段: 学号,姓名,平均成绩)\x0d\x0a>sqldf('select stuid,name,subject, avg(score) as avgscore from stuscore group by stuid')\x0d\x0a stuid name subject avgscore\x0d\x0a1 1 张三英语 79.66667\x0d\x0a2 2 李四英语 80.00000\x0d\x0a\x0d\x0a5.列出各门课程成绩最好的学生(要求显示字段: 学号,姓名,科目,成绩)\x0d\x0a>sqldf('select stuid,name,subject,max(score) as maxscore from stuscore group by subject order by stuid')\x0d\x0a stuid name subject maxscore\x0d\x0a1 1 张三语文 80\x0d\x0a2 2 李四数学 90\x0d\x0a3 2 李四英语 80\x0d\x0a\x0d\x0a8.列出各门课程的平均成绩(要求显示字段:课程,平均成绩)\x0d\x0a>sqldf('select subject,avg(score) as avgscore from stuscore group by subject')\x0d\x0a subject avgscore\x0d\x0a1数学 89.5\x0d\x0a2英语 75.0\x0d\x0a3语文 75.0

R平方:决定系数,反应因变量的全部变异能通过回归关系被自变量解释的比例。如R平方为0.8,则表示回归关系可以解释因变量80%的变异。换句话说,如果我们能控制自变量不变,则因变量的变异程度会减少80%

1,在统计学中,R平方值的计算方法如下:

R平方值=回归平方和(ssreg)/总平方和(sstotal)

其中回归平方和=总平方和-残差平方和(ssresid)

2,以上几个名词解释如下:

总平方和:Const参数为True的情况下,总平方和=y的实际值与平均值的平方差之和;Const参数为False的情况下,总平方和=y的实际值的平方和。

残差平方和:残差平方和=y的估计值与y的实际值的平方差之和。

3,在线性回归分析中,可以使用RSQ函数计算R平方值。

RSQ函数语法为RSQ(known_y's,known_x's)

将源数据中的y轴数据和x轴数据分别代入,就可以求得其“线性”趋势线的R平方值。

4,R^2的特点:

(1)可决系数是非负的统计量

(2)可决系数的取值范围:0<=R^2<=1

(3)可决系数是样本观测值的函数,可决系数R^2是随机抽样而变动的随机变量。为此,对可决系数的统计可靠性也应进行检验。

-