有哪些有个游戏很好玩玩而且很有用的 R 包

在这里提了一个自问自答的问题来推广一种十分优雅的数据可视化工具,R的ggplot2包。其实我自己现在主要在使用Python和Pandas和Numpy工作,ggplot2应该是我留守在R里面最大的理由之一~&br&&br&在介绍ggplot2之前,我首先来介绍一下作者Hadley Wickham。Hadley (&a href=&///?target=http%3A//statistics.rice.edu/feed/FacultyDisplay.aspx%3FFID%3D3340& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Rice University Department of Statistics : Faculty&i class=&icon-external&&&/i&&/a&)从统计学名校Iowa State University拿到了自己的Ph. D,其博士论文Practical tools for exploring data and models 就是关于数据可视化和探索性数据分析的,现任Rice University的Adjunct Assistant Professor 和R的著名IDE RStudio的首席科学家。Hadley在R语言用户中具有极高的声望。R的基础版本其实是不太好用的,但是Hadley的一系列优秀作品极大地改进了R语言。今年五月在北京召开的R语言会议,好多人都争相和Hadley合影,可见Hadley的魅力与声望非同一般。Hadley开发一个package的时候会先开发一个版本,如果他觉得不够好又升级了,就会发一个新版本,名字变成旧名字后面加上数字2。所以我们就有了reshape2和ggplot2。&br&&br&ggplot2基于Leland Wilkinson在Grammar of Graphics(图形的语法)中提出的理论,取首字母缩写再加上plot,于是得名ggplot。按照《图形的语法》一书中的观点,一张统计图形就是从数据到点、线或方块等&b&几何对象&/b&的颜色、形状或大小等&b&图形属性&/b&的一个映射,其中还可能包含对数据进行&b&统计变换&/b&(如求均值或方差),最后将这个映射绘制在一定的&b&坐标系&/b&中就得到了我们需要的图形。图中可能还有&b&分面&/b&,就是生成关于数据的不同子集的图形。使用ggplot2绘图的过程就是选择合适的几何对象、图形属性和统计变换来充分暴露数据中所含有的信息的过程。ggplot2需要一定的时间去入门学习,但是当你掌握了ggplot2中图形的语法的时候,我相信你会感受到这套语法的优雅。&br&&br&在接下来的部分,我假定读者已经对R语言有了基本的了解,我将不会介绍DataFrame等基本概念。&br&&br&安装ggplot2和安装其他的R包没有差别,在R的console里面运行install.packages(&ggplot2&) 一句就可以了,如果你使用RStudio,也可以在Package列表那里用鼠标去安装。&br&&br&先来介绍一些ggplot2中的基本概念,括号里面对应的是ggplot2中为这种属性赋值的时候需要使用的参数名&br&&b&图形属性(aes) &/b& 横纵坐标、点的大小、颜色,填充色等&br&&b&几何对象(geom_)&/b& 上面指定的图形属性需要呈现在一定的几何对象上才能被我们看到,这些承载图形属性的对象可能是点,可能是线,可能是bar&br&&b&统计变换 (stat_)&/b& 比如求均值,求方差等,当我们需要展示出某个变量的某种统计特征的时候,需要用到统计变换&br&&br&我们来看下面这张图&br&&img src=&/0b075dbf5ada116f1fdad_b.jpg& data-rawwidth=&408& data-rawheight=&404& class=&content_image& width=&408&&&br&这张图里面用到的图形属性是,横坐标x,纵坐标y,点的颜色,使用的几何对象是点,没有进行统计变换&br&&img src=&/3a235ee6c1ea4e9b4f5be_b.jpg& data-rawwidth=&400& data-rawheight=&404& class=&content_image& width=&400&&&br&&br&下面这张图使用的图形属性是横坐标x,使用的几何对象是bar,使用的统计变换是封箱(bin),也就是分一点间距计数。 大家都知道,这张图其实就是直方图(histogram)。这种传统的统计图形也都是可以被容纳在ggplot2的图形语法框架之内的,当你熟练掌握ggplot2之后,可以根据图形语法自己构建新的统计图形。&br&&br&ggplot2对于ggplot()函数生成的ggplot对象重载了+这个运算符号,我们可以从一个不含有任何内容而只是指定了数据的ggplot2图形开始,逐步添加新的元素,最终得到一张内容丰富的图形。&br&假设我们这里已经有了一个名为mtcars的数据库,其中有两列wt和mpg&br&p &- ggplot(mtcars)+aes(x=wt,y=mpg)&br&我们首先指定要用mtcars这个dataframe来绘图,然后我们又指定了图中的横纵坐标分别表示什么,现在图上还是看不到东西的,只能看到坐标轴,我们要继续指定几何对象。p + geom_point()&br&&img src=&/9a37cb3ba183f3ed60d4c0d441d9a084_b.jpg& data-rawwidth=&423& data-rawheight=&410& class=&origin_image zh-lightbox-thumb& width=&423& data-original=&/9a37cb3ba183f3ed60d4c0d441d9a084_r.jpg&&这样我们就得到了一张最基本的散点图。&br&我们还可以按照另外一个变量对点上色&br&p + geom_point(aes(colour = qsec))&br&&img src=&/6ec34bc068a3b99f140b8d0_b.jpg& data-rawwidth=&408& data-rawheight=&407& class=&content_image& width=&408&&这里使用的qsec是一个连续变量,我们还可以指定一个因子&br&p + geom_point(aes(colour = factor(cyl)))&br&&img src=&/bc4baec3b9f5bea24403_b.jpg& data-rawwidth=&404& data-rawheight=&402& class=&content_image& width=&404&&这样就生成了我们之前的那个例子&br&&br&先写到这里 之后再慢慢更新吧&br&&br&推荐两本书&br&一本是Hadley自己写的&br&ggplot2: Elegant Graphics for Data Analysis&br&另一本是 R Graphics Cookbook&br&目前国内都有出版,我觉得都很不错
在这里提了一个自问自答的问题来推广一种十分优雅的数据可视化工具,R的ggplot2包。其实我自己现在主要在使用Python和Pandas和Numpy工作,ggplot2应该是我留守在R里面最大的理由之一~ 在介绍ggplot2之前,我首先来介绍一下作者Hadley Wickham。Hadley (
R语言中好玩的包首推谢大神的杰作——fun包。顾名思义,fun包集合了几款游戏以及有趣的demo,下面介绍几个游戏和有趣的功能:&br&&ul&&li&&b&扫雷——mine_sweeper()&/b&&/li&&/ul&
扫雷,windows系统下的经典游戏,fun包的mine_sweeper()可在R语言中玩扫雷游戏,当第一次用R玩扫雷,着实被R惊艳了一把。&br&&div class=&highlight&&&pre&&code class=&language-text&&library(fun)
if (.Platform$OS.type == &windows&) x11() else x11(type = &Xlib&)
mine_sweeper()
&/code&&/pre&&/div&&img src=&/a63c6cf7d94a2cbed1fab220a6ba9776_b.png& data-rawwidth=&672& data-rawheight=&670& class=&origin_image zh-lightbox-thumb& width=&672& data-original=&/a63c6cf7d94a2cbed1fab220a6ba9776_r.png&&&ul&&li&&b&五子棋——gomoku()&/b&&/li&&/ul&
这个五子棋不是人机对战,而是人人对战,不会智能判断判输赢,用来下围棋也是极好的。&br&&div class=&highlight&&&pre&&code class=&language-text&&if (.Platform$OS.type == &windows&) x11() else x11(type = &Xlib&)
&/code&&/pre&&/div&&img src=&/f6db7e2a7faa044d117b9b_b.png& data-rawwidth=&621& data-rawheight=&630& class=&origin_image zh-lightbox-thumb& width=&621& data-original=&/f6db7e2a7faa044d117b9b_r.png&&&ul&&li&&b&关灯游戏——lights_out()&/b&&/li&&/ul&
所谓关灯游戏就是把所有的方片变成白色或者黑色。玩法很简单:点一下其中一个方片,这个方片就会变成相反的颜色(黑变白或者白变黑),而与其紧邻的四个方片也会变成相反的颜色。&br&&div class=&highlight&&&pre&&code class=&language-text&&if (.Platform$OS.type == &windows&) x11() else x11(type = &Xlib&)
lights_out()
&/code&&/pre&&/div&&img src=&/7a064a94b1f6e4eca4c15_b.png& data-rawwidth=&642& data-rawheight=&643& class=&origin_image zh-lightbox-thumb& width=&642& data-original=&/7a064a94b1f6e4eca4c15_r.png&&&ul&&li&&b&汉诺塔——tower_of_hanoi()&/b&&/li&&/ul&&blockquote&
汉诺塔是源于印度一个古老传说的益智玩具:在世界中心贝拿勒斯的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。&a href=&///?target=http%3A///link%3Furl%3DNOT3Xp1DD-7yFKpw4-74RqsVwD59SDqT--6jkNV7gavXUX-vfV87tLqajvOXO05--bo_YZcq0vl5FQ7F78GtDa& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&汉诺塔_百度百科&i class=&icon-external&&&/i&&/a&&/blockquote&&div class=&highlight&&&pre&&code class=&language-text&&if (.Platform$OS.type == &windows&) x11() else x11(type = &Xlib&)
tower_of_hanoi(7)
&/code&&/pre&&/div&以下演示了七层的汉诺塔实现过程,只是颜色搭配真的很丑。&br&&img src=&/039e7a4df6e7f4c9f370_b.png& data-rawwidth=&643& data-rawheight=&634& class=&origin_image zh-lightbox-thumb& width=&643& data-original=&/039e7a4df6e7f4c9f370_r.png&&&ul&&li&&b&众里寻他千百度——alzheimer_test()&/b&&/li&&/ul&
这个游戏与前一段风靡的“找熊猫”游戏属于一类游戏,只不过是找的内容是是数字或字母,默认在9里面找6,在O里面找C,在M里面找N等等,当然也可以自定义。输入alzheimer_test()即可,然后按照提示输入内容就可上手玩了,很简单,不再上图。&br&&br&
除了游戏之外,fun包还有几个有趣的功能,比如:&br&&ul&&li&&b&关闭电脑(windows系统)&/b&&/li&&/ul&&div class=&highlight&&&pre&&code class=&language-text&&shutdown(wait = 5)
&/code&&/pre&&/div&
5秒后,你的电脑就关机了(千万不要手贱,数字可以自定义)。&br&
这条命令实际上等于在cmd命令窗口中输入“shutdown -s -t 5”,对于晚上睡前在被窝里连WIFI玩手机的童鞋非常实用。&br&&ul&&li&&b&生成随机密码&/b&&/li&&/ul&
有时候账号要更换新密码,想个新密码想不出来怎么办?random_password()来帮忙!&br&
random_password()默认生成长度为12, ASCII字符的密码&br&
当然,我们我们可以通过设置参数来生成指定长度的,由字母和数字组成的固定密码。&br&&div class=&highlight&&&pre&&code class=&language-text&&set.seed(1949)
random_password(length=6,replace=FALSE,extended=FALSE)
&/code&&/pre&&/div&或省略参数名&br&&div class=&highlight&&&pre&&code class=&language-text&&set.seed(1949)
random_password(6,F,F)
&/code&&/pre&&/div&于是乎,我们就不用记住该死的密码了,只需要记住种下的种子数即可。&br&&br&此外,fun包还有一些有趣的demo,在此展示一个例子&br&&ul&&li&&b&生成心形国旗&/b&&/li&&/ul&&div class=&highlight&&&pre&&code class=&language-text&&demo(&ChinaHeart2D&)
&/code&&/pre&&/div&&img src=&/b16f39a7ce7a8dc94a3c8a5a950cbdac_b.png& data-rawwidth=&685& data-rawheight=&353& class=&origin_image zh-lightbox-thumb& width=&685& data-original=&/b16f39a7ce7a8dc94a3c8a5a950cbdac_r.png&&
最后,送给大家一个Surprise!&br&
把上面代码中的2改成3,然后执行,点击Enter,即可看到!
R语言中好玩的包首推谢大神的杰作——fun包。顾名思义,fun包集合了几款游戏以及有趣的demo,下面介绍几个游戏和有趣的功能: 扫雷——mine_sweeper() 扫雷,windows系统下的经典游戏,fun包的mine_sweeper()可在R语言中玩扫雷游戏,当第一次用R玩扫雷,着…
根据题主的评论,题主需要知道以下几点,方可看到源代码,以题主希望看到的lattice::qq源代码为例:&br&&ol&&li&首先,一个扩展包中定义的函数有区分公开和不公开的,会在扩展包根目录下的NAMESPACE文件中定义是否Export,如果一个函数没有Export,则为不公开的函数,只能在包内部调用。&/li&&li&lattice::qq是一个Generic Function,就像是plot,summary等函数,是由对象的class来确定实际执行的函数(例如对于data frame,执行summary时会执行summary.data.frame,对于lm会执行summary.lm等等,都不是则会执行summary.default)这是R S3 面向对象系统的设计。因此看到qq源代码时只能看到 UseMethod(&qq&),还要看到哪些class实现了qq方法,而lattice并没有把这些实现给Export&/li&&li&想要看到源代码本可以直接在Console中输入函数名称或者在RStudio中函数上按F2即可,即 lattice::qq,但是这只是看到了Generic Function的源代码,如果需要看到具体的执行函数的源代码,那么就需要获得整个包的源码。可以到CRAN的页面&a class=& wrap external& href=&///?target=http%3A//cran.r-project.org/web/packages/lattice/index.html& target=&_blank& rel=&nofollow noreferrer&&CRAN - Package lattice&i class=&icon-external&&&/i&&/a& 中下载Package source那个链接,这里面包含了整个lattice的源代码:&a href=&///?target=http%3A//cran.r-project.org/src/contrib/lattice_0.20-29.tar.gz& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&cran.r-project.org/src/&/span&&span class=&invisible&&contrib/lattice_0.20-29.tar.gz&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/li&&/ol&
根据题主的评论,题主需要知道以下几点,方可看到源代码,以题主希望看到的lattice::qq源代码为例: 首先,一个扩展包中定义的函数有区分公开和不公开的,会在扩展包根目录下的NAMESPACE文件中定义是否Export,如果一个函数没有Export,则为不公开的函数,…
哈哈,这个问题我来回答一下。&br&&br&有朋友问什么程度可以说R语言入门,如果你会用计算器,那你已经入门了。&br&那初级水平呢?如果能熟练使用各种apply,基本可以说是初级以上水平了。&br&我就在这个问题下面来介绍一下R语言中各种apply用法。&br&首先来说下R里面有哪些apply。&br&R中apply相关函数有不少,有的不常见,比如eapply,就不展开说了。&br&常见的有apply,lapply,sapply,tapply。&br&&br&1. apply&br&查看R语言中apply函数的帮助文档,对apply函数是这样说明的:&br&Returns a vector or array or list of values obtained by applying a function to margins of an array or matrix.&br&这句话的意思就是apply会把一个函数同时作用于一个数组或者矩阵的一个margin,然后返回值存在一个向量或者数组中,也就是说把每一个margin作为一个函数的输入,对应一个输出,所有的输出放在一起返回来。&br&那么这个margin如何理解?margin可以是数组的每一行/每一列。值得注意的是这里的数组未必是2维的,更高维也可以。&br&一个具体例子,求一个2维数组每一列和每一行的平均值:&div class=&highlight&&&pre&&code class=&language-text&&& x=array(rnorm(12),c(3,4))
0....5850348
0....2756939
[3,] -2....9308724
& y=apply(x,1,mean)
[1] -0...3403932
& y=apply(x,2,mean)
[1] -0....
&/code&&/pre&&/div&apply第一个参数是输入数据。&br&apply第二个参数,指定是哪一种margin,1对应每一列,2对应每一行。&br&如果有更高维,以此类推,比如对3维情况:&div class=&highlight&&&pre&&code class=&language-text&&& x=array(c(1:24),c(2,3,4))
[,1] [,2] [,3]
[,1] [,2] [,3]
[,1] [,2] [,3]
[,1] [,2] [,3]
& apply(x,1,mean)
& apply(x,2,mean)
[1] 10.5 12.5 14.5
& apply(x,3,mean)
9.5 15.5 21.5
&/code&&/pre&&/div&&br&以上例子,apply(x,1,mean)计算的是1到23的所有奇数的平均值。apply第三个参数,指定了具体应用什么函数,上面例子计算mean,其实可以用更简单办法,colMeans和rowMeans函数,那如果是一个自己写的函数呢?看下面例子:&div class=&highlight&&&pre&&code class=&language-text&&& myFun=function(x){sum(x^2)}
& apply(x,1,myFun)
5...855718
&/code&&/pre&&/div&上面例子计算每一行的平方和。&br&如果一个函数fun1有多个参数,margin只是这个函数的一个参数,想固定其他参数怎么办?很简单,自己定义一个只有一个参数的新函数fun2,在fun2里面调用fun1,并且对其他参数赋值,然后把fun2传递给apply。&br&&br&通常情况大家使用apply之后是需要把apply的返回值作为输入在其他代码中使用的,这里尤其重要一点是apply的返回值的维度。上面例子计算每一行/列的mean,使用apply之后返回的都是一个向量,并不会因为apply计算行(列)的mean就会自动返回一个列(行)向量。&br&下面我们用apply函数来实现一个R的内置函数scale,就是标准化一个数组/矩阵。具体来说,是把每一列先减去这一列的中心,然后除以这一列的标准差。&div class=&highlight&&&pre&&code class=&language-text&&& x=array(1:20,c(4,5))
[,1] [,2] [,3] [,4] [,5]
& scale(x,center = T,scale = T)
[1,] -1.....1618950
[2,] -0.....3872983
0.....3872983
1.....1618950
attr(,&scaled:center&)
6.5 10.5 14.5 18.5
attr(,&scaled:scale&)
[1] 1.....290994
& myScale=function(x){
+ x.Mean=apply(x,2,mean)
+ x.sd=apply(x,2,sd)
+ #注意下面一行代码
+ t((t(x)-x.Mean)/x.sd)
& myScale(x)
[1,] -1.....1618950
[2,] -0.....3872983
0.....3872983
1.....1618950
&/code&&/pre&&/div&可见myScale于scale函数返回值一样。&br&在上面例子中,最关键的代码是&br&t((t(x)-x.Mean)/x.sd)&br&因为在R语言中,一个矩阵和一个向量运算,向量是作为列向量,与矩阵的每一个元素(从一列开始,而不是第一行)进行运算。所以我们先转置矩阵,变成矩阵的元素按行来与向量的元素运算,然后把结果再转置回去。&br&2. lapply和sapply&br&这两个apply函数很像,都是应用于一个vector/list上面,上面的apply是用于一个数组/矩阵。所以通常apply需要三个参数,而lapply/sapply一般需要两个参数,第一个参数是输入数据,第二个是函数。两者的区别在于返回值上面,sapply返回的是一个vector,但是lapply返回的是一个list,见下例:&div class=&highlight&&&pre&&code class=&language-text&&& sapply(x,function(x) {x^2})
& x=c(1:5)
& sapply(x,function(x) {x^2})
& lapply(x,function(x) {x^2})
&/code&&/pre&&/div&&br&sapply还有更复杂的用法,要使用第三个参数。在上面例子中,sapply应用的函数返回值是一个元素,也就是一个数值,然后sapply把这些数值放在一个向量中返回,但是如果sapply应用的函数返回的不是一个元素呢?这时sapply会把返回值作为一个vector,见下面例子:&div class=&highlight&&&pre&&code class=&language-text&&& sapply(1:5,function(x) matrix(x,2,2))
[,1] [,2] [,3] [,4] [,5]
&/code&&/pre&&/div&显然上面例子的返回值并非我们想要的,要处理返回值是数组/矩阵的情况,在sapply里面使用第三个参数simplify:&div class=&highlight&&&pre&&code class=&language-text&&& sapply(1:5,function(x) matrix(x,2,2), simplify = &array&)
&/code&&/pre&&/div&&br&&br&3. tapply&br&tapply通常也有三个参数,第一个指定输入数据,第二个是指定输入数据如何分组,第三个参数指定在每一个分组内,应用什么函数,所以tapply的功能就是把数据按照某种分组,在每个组内进行某个运算,见下面例子:&div class=&highlight&&&pre&&code class=&language-text&&& medical.example
age treatment
1 54.70208 Treatment
2 64.91654 Treatment
3 51.80260 Treatment
4 61.63020 Treatment
5 72.79920 Treatment
6 59.99898 Treatment
7 40.85752 Treatment
8 51.00623 Treatment
9 64.25137 Treatment
10 59.97824 Treatment
11 58.19639
12 34.42546
13 53.11569
14 31.19479
15 67.27431
16 64.89839
17 67.29181
18 61.83809
19 82.79484
20 68.93832
& tapply(medical.example$age,medical.example$treatment,mean)
&/code&&/pre&&/div&&br&&br&欢迎大家关注微信公众号:机器会学习(搜索id:jiqihuixuexi),每日更新原创文章!
哈哈,这个问题我来回答一下。 有朋友问什么程度可以说R语言入门,如果你会用计算器,那你已经入门了。 那初级水平呢?如果能熟练使用各种apply,基本可以说是初级以上水平了。 我就在这个问题下面来介绍一下R语言中各种apply用法。 首先来说下R里面有哪些a…
已有帐号?
无法登录?
社交帐号登录
17378 人关注
1418 条内容
107 条内容
268 人关注
270 条内容
624 人关注
102 条内容
4351 人关注
2766 条内容R.sztiii的推荐 | LOFTER(乐乎) - 让兴趣,更有趣
LOFTER for ipad —— 让兴趣,更有趣
R.sztiii 的推荐
&nbsp&nbsp被喜欢
&nbsp&nbsp被喜欢
{list posts as post}
{if post.type==1 || post.type == 5}
{if !!post.title}${post.title|escape}{/if}
{if !!post.digest}${post.digest}{/if}
{if post.type==2}
{if post.type == 3}
{if !!post.image}
{if post.type == 4}
{if !!post.image}
{if !!photo.labels && photo.labels.length>0}
{var wrapwidth = photo.ow < 500?photo.ow:500}
{list photo.labels as labs}
{var lbtxtwidth = Math.floor(wrapwidth*(labs.ort==1?labs.x:(100-labs.x))/100)-62}
{if lbtxtwidth>12}
{if !!labs.icon}
{list photos as photo}
{if photo_index==0}{break}{/if}
品牌${make||'-'}
型号${model||'-'}
焦距${focalLength||'-'}
光圈${apertureValue||'-'}
快门速度${exposureTime||'-'}
ISO${isoSpeedRatings||'-'}
曝光补偿${exposureBiasValue||'-'}
镜头${lens||'-'}
{if data.msgRank == 1}{/if}
{if data.askSetting == 1}{/if}
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post_index < 3}
{if post.type == 1 || post.type == 5}
{if !!post.title}${post.title|escape}{/if}
{if !!post.digest}${post.digest}{/if}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
{if post.type == 6}
{if drlist.length>0}
更多相似达人:
{list drlist as dr}{if drlist.length === 3 && dr_index === 0}、{/if}{if drlist.length === 3 && dr_index === 1}、{/if}{if drlist.length === 2 && dr_index === 0}、{/if}{/list}
暂无相似达人,
{if defined('posts')&&posts.length>0}
{list posts as post}
{if post.type == 2}
{if post.type == 3}
{if post.type == 4}
{if post.type == 6}
this.p={ dwrMethod:'querySharePosts', fpost:'1de227d8_b30ff8c',userId:,blogListLength:30};你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
扫一扫第一时间给您推送最新课程、最热门资讯
邮件订阅每周公开课与热门资讯:
数据导入以下R包主要用于数据导入和保存数据
feather:一种快速,轻量级的文件格式。在R和python上都可使用
readr:实现表格数据的快速导入。中文介绍可参考这里
readxl:读取Microsoft Excel电子表格数据
openxlsx:读取Microsoft Excel电子表格数据
googlesheets:读取google电子表格数据
haven:读取SAS,SPSS和Stata统计软件格式的数据
httr:从网站开放的API中读取数据
rvest:网页数据抓取包
xml2:读取HTML和XML格式数据
webreadr:读取常见的Web日志格式数据
DBI:数据库管理系统通用接口包
RMySQL:用于连接MySQL数据库的R包
RPostgres:用于连接PostgreSQL数据库的R包
bigrquery用于连接Google BigQuery的R包
PivotalR:用于读取Pivitol(Greenplum)和HAWQ数据库中的数据
dplyr:提供了一个访问常见数据库的接口
data.table:data.table包的fread()函数可以快速读取大数据集
git2r:用于访问git仓库
以下R包主要用于数据整理,以便于你后续建模分析:
tidyr:用于整理表格数据的布局
dplyr:用于将多个数据表连接成一个整齐的数据集
purrr:函数式编程工具,在做数据整理时非常有用。
broom:用于将统计模型的结果整理成数据框形式
zoo:定义了一个名zoo的S3类型对象,用于描述规则的和不规则的有序的时间序列数据。
数据可视化以下R包用于数据可视化:
ggplot2及其扩展:ggplot2包提供了一个强大的绘图系统,并实现了以下扩展
ggthemes:提供扩展的图形风格主题
ggmap:提供Google Maps,Open Street Maps等流行的在线地图服务模块
ggiraph:绘制交互式的ggplot图形
ggstance:实现常见图形的横向版本
GGally:绘制散点图矩阵
ggalt:添加额外的坐标轴,geoms等
ggforce:添加额外geoms等
ggrepel:用于避免图形标签重叠
ggraph:用于绘制网络状、树状等特定形状的图形
ggpmisc:光生物学相关扩展
geomnet:绘制网络状图形
ggExtra:绘制图形的边界直方图
gganimate:绘制动画图
plotROC:绘制交互式ROC曲线图
ggspectra:绘制光谱图
ggnetwork:网络状图形的geoms
ggradar:绘制雷达图
ggTimeSeries:时间序列数据可视化
ggtree:树图可视化
ggseas:季节调整工具
lattice:生成栅栏图
rgl:交互式3D绘图
ggvis:交互式图表多功能系统
htmlwidgets:一个专为R语言打造的可视化JS库
leaflet:绘制交互式地图
dygraphs:绘制交互式时间序列图
plotly:交互式绘图包,中文介绍详见这里
rbokeh:用于创建交互式图表和地图,中文介绍
Highcharter:绘制交互式Highcharts图
visNetwork:绘制交互式网状图
networkD3:绘制交互式网状图
d3heatmap:绘制交互式热力图,中文介绍
DT:用于创建交互式表格
threejs:绘制交互式3d图形和地球仪 -rglwidget:绘制交互式3d图形
DiagrammeR:绘制交互式图表
MetricsGraphics:绘制交互式MetricsGraphics图
rCharts:提供了对多个javascript数据可视化库(highcharts/nvd3/polychart)的R封装。
coefplot:可视化统计模型结果
quantmod:可视化金融图表
colorspace:基于HSL的调色板
viridis:Matplotlib viridis调色板
munsell:Munsell调色板
RColorBrewer:图形调色板
igraph:用于网络分析和可视化
latticeExtra:lattice绘图系统扩展包
sp:空间数据工具
数据转换以下R包用于将数据转换为新的数据类型
dplyr:一个用于高效数据清理的R包。视频学习课程
magrittr:一个高效的管道操作工具包。
tibble:高效的显示表格数据的结构
stringr:一个字符串处理工具集
lubridate:用于处理日期时间数据
xts:xts是对时间序列数据(zoo)的一种扩展实现,提供了时间序列的操作接口。
data.table:用于快速处理大数据集
vtreat:一个对预测模型进行变量预处理的工具
stringi:一个快速字符串处理工具
Matrix:著名的稀疏矩阵包
统计建模与推断下述R包是统计建模最常用的几个R包,其中的一些R包适用于多个主题。
car:提供了大量的增强版的拟合和评价回归模型的函数。
Hmisc:提供各种用于数据分析的函数
multcomp:参数模型中的常见线性假设的同时检验和置信区间计算,包括线性、广义线性、线性混合效应和生存模型。
pbkrtest用于线性混合效应模型的参数Bootstrap检验
MatrixModels:用于稠密矩阵和稀疏矩阵建模
mvtnorm:用于计算多元正态分布和t分布的概率,分位数,随机偏差等
SparseM:用于稀疏矩阵的基本线性代数运算
lme4:利用C++矩阵库 Eigen进行线性混合效应模型的计算。
broom:将统计模型结果整理成数据框形式
caret:一个用于解决分类和回归问题的数据训练综合工具包
glmnet:通过极大惩罚似然来拟合广义线性模型
gbm:用于实现随机梯度提升算法
xgboost:全称是eXtreme Gradient Boosting。是Gradient Boosting Machine的一个c++实现。目前已制作了xgboost工具的R语言接口。详见统计之都的一篇介绍
randomForest:提供了用随机森林做回归和分类的函数
ranger:用于随机森林算法的快速实现
h2o:H2O是0xdata的旗舰产品,是一款核心数据分析平台。它的一部分是由R语言编写的,另一部分是由Java和Python语言编写的。用户可以部署H2O的R程序安装包,之后就可以在R语言环境下运行了。
ROCR:通过绘图来可视化分类器的综合性能。
pROC:用于可视化,平滑和对比ROC曲线
沟通交流以下R包用于实现数据科学结果的自动化报告,以便于你跟人们进行沟通交流。
rmarkdown :用于创建可重复性报告和动态文档
knitr:用于在PDF和HTML文档中嵌入R代码块
flexdashboard:基于rmarkdown,可以轻松的创建仪表盘
bookdown:以R Markdown为基础,用于创作书籍和长篇文档
rticles:提供了一套R Markdown模板
tufte:用于实现Tufte讲义风格的R Markdown模板
DT:用于创建交互式的数据表
pixiedust:用于自定义数据表的输出
xtable:用于自定义数据表的输出
highr:用于实现R代码的LaTeX或HTML格式输出
formatR:通过tidy_source函数格式化R代码的输出
yaml:用于实现R数据与YAML格式数据之间的通信。
自动化分析以下R包用于创建自动化分析结果的数据科学产品:
shiny:一个使用R语言开发交互式web应用程序的工具。中文教程
shinydashboard:用于创建交互式仪表盘
shinythemes:给出了Shiny应用程序的常用风格主题
shinyAce:为Shiny应用程序开发者提供Ace代码编辑器。
shinyjs:用于在Shiny应用程序中执行常见的JavaScript操作
miniUI:提供了一个UI小部件,用于在R命令行中集成交互式应用程序
shinyapps.io:为创建的Shiny应用程序提供托管服务
Shiny Server Open Source:为Shiny应用程序提供开源免费的服务器
Shiny Server Pro:为企业级用户提供一个Shiny应用程序服务器
rsconnect:用于将Shiny应用程序部署到shinyapps.io
plumber:用于将R代码转化为一个web API
rmarkdown:用于创建可重复性报告和动态文档
rstudioapi:用于安全地访问RStudio IDE的API
程序开发以下这些包主要用于开发自定义的R包:
RStudio Desktop IDE:R的IDE。大家都懂,不用解释。
RStudio Server Open Source:开源免费的RStudio服务器
RStudio Server Professional:商业版RStudio服务器
devtools:一个让开发R包变得简单的工具集
packrat:创建项目的特定库,用于处理包的版本问题,增强代码重现能力。
drat:一个用于创建和使用备选R包库的工具
testthat:单元测试,让R包稳定、健壮,减少升级的痛苦。
roxygen2:通过注释的方式,生成文档,远离Latex的烦恼。
purrr:一个用于 提供函数式编程方法的工具
profvis:用于可视化R代码的性能分析数据
Rcpp:用于实现R与C++的无缝整合。详见统计之都文章
R6:R6是R语言的一个面向对象的R包,可以更加高效的构建面向对象系统。
htmltools:用于生成HTML格式输出
nloptr:提供了一个NLopt非线性优化库的接口
minqa:一个二次近似的优化算法包
rngtools:一个用于处理随机数生成器的实用工具
NMF:提供了一个执行非负矩阵分解的算法和框架
crayon:用于在输出终端添加颜色
RJSONIO:rjson是一个R语言与json进行转的包,是一个非常简单的包,支持用 C类库转型和R语言本身转型两种方式。
jsonlite:用于实现R语言与json数据格式之间的转化
RcppArmadillo:提供了一个Armadillo C++ Library(一种C++的线性代数库)的接口
实验数据以下R包给出了案例实战过程中可用的训练数据集:
babynames:包含由美国社会保障局提供的三个数据集
neiss:年期间提供给美国急诊室的所有事故报告样本数据
yrbss:美国疾病控制中心年期间青年危险行为监测系统数据
hflights:
USAboundaries:2011年全年休斯顿机场的所有航班数据
rworldmap:国家边界数据
usdanutrients:美国农业部营养数据库
fueleconomy:美国环保署年期间的燃油经济数据
nasaweather:包含了一个覆盖中美洲的非常粗糙的24*24格地理位置和大气测量数据。
mexico-mortality:墨西哥死亡人数数据
data-movies和ggplotmovies:来自互联网电影数据库的数据
pop-flows:2008年全美人口流动数据
data-housing-crisis:经过清洗后的2008美国房地产危机数据
gun-sales:纽约时报提供的有关枪支购买的每月背景调查统计分析数据
stationaRy:从成千上万个全球站点收集到的每小时气象数据
gapminder:摘自Gapminder的数据
janeaustenr:简·奥斯丁小说全集数据
更多R包介绍查看CRAN任务视图
要回复问题请先或
浏览: 2374
关注: 3 人
使用其他账号登录
还没有有PPV课账户
确认密码:
角色选择:
数据分析师
大数据工程师
数据挖掘工程师
保持登录(一个月)
阅读并已同意
已有PPV课账户}

我要回帖

更多关于 皮皮麻将 真很好玩嘛 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信