挖掘R包关系网

挖掘R包关系网

原创 2017-05-06 周世荣 EasyCharts

这篇博文主要讲解如何对R包关系网挖掘,其实大家在装包的时候会注意到一些包需要好几个依赖包,而这些依赖包又有各自的依赖包,这是一个复杂的关系网。

1、数据准备

library(tidyverse)

cran <- tools::CRAN_package_db()

##除去重名的列

cran <- cran[,-65]

##变为数据表的形式

cran <- tbl_df(cran)


2、R包下载前10

##获取过去一个月R包下载前10

library(cranlogs)

rptop10 <- cran_top_downloads('last-month',count = 10)

#绘制条形图

ggplot(rptop10,aes(x=reorder(package,count),y=count))+

geom_bar(stat = 'identity',fill='steelblue')+

labs(x='',y='下载量',title='过去一个月R包下载top10',

subtitle=R.version.string)+

coord_flip()

3.1、ggplot2关系网

#绘制关系网络图

library(networkD3)

library(stringr)

netop10=cran[cran$Package %in% rptop10$package,]

exfun = function(x){

x=as.character(x)

pimport=unlist(str_extract_all(str_trim(unlist(str_split(

cran$Imports[cran$Package==x],','))),

'^\\w{1,}'))

psuggest=unlist(str_extract_all(str_trim(unlist(str_split(

cran$Suggests[cran$Package==x],','))),

'^\\w{1,}'))

return(c(pimport,psuggest))

}

#ggplot2依赖包关系网

test = exfun('ggplot2')

NetworkData <- data.frame(Source='ggplot2', Target=test)

simpleNetwork(NetworkData, fontSize = 10,linkDistance = 120,

nodeColour='red', opacity = 1,zoom = T)


3.2、ggplot2二级关系网

4、下载量前100关系网




微信公众号“easycharts”文章地址:

挖掘R包关系网

mp.weixin.qq.com/s?*soQ-fM6apMuAyk*dbo0BNXbxTTiBC0ASQSZZI2pu8tADQKi5zUUtYhOMC2XLKfJTHbcMjNzRTm2zcoGFzjvGkRQfZXwwGSoj4CI*KgfZINYEIWF-t1IR6bqrpcH8yZv-NFvqxvg=






aHR0cDovL3FtLnFxLmNvbS9jZ2ktYmluL3FtL3FyP2s9NU05REd6NnZ2NHNKb2ZEd3dFX3NtZXVPWHdPbkJOWEk= (二维码自动识别)




EasyCharts团队出品

帅的人都关注了EasyCharts团队^..^~

QQ交流群:553270834

微信公众号:EasyCharts

更多信息敬请查看: easychart.github.io/pos

发布于 2017-05-08

文章被以下专栏收录

    欢迎关注我们的微信公众号:EasyCharts;R语言QQ群:553270834(魔方学院 ); EasyCharts团队出品,研究R语言数据分析与可视化,分享各种数据可视化Package的教程,