R语言对git安卓包分类统计、聚类、复杂网络可视化分析

简介: R语言对git安卓包分类统计、聚类、复杂网络可视化分析

全文链接:http://tecdat.cn/?p=31035


我们曾经为一位客户进行了短暂的咨询工作,他在构建一个主要基于安卓包分类的分析应用程序点击文末“阅读原文”获取完整代码数据


数据源是安卓的项目,把同一类功能的安卓代码的头部,每一个文件都有import 包名。把所有import的包名都抓了下来存到了mysql, 这是数据源 , 需要用r分析这些包名。

用r给这些包做统计,同名的包有多少,占百分之多少,做可视化图,打标签。

这个项目的目的是,比如一类功能是发email的app,每一个项目里java文件头部都有引用的包名,通过把所有的包名一分析,发现80%的项目里面都有同一个包,那么就认为这个包的功能就是email , 然后再通过标签关联java文件 。

导入数据

`Y2K7]~HM]E2E0X1F[TF5Q3.png

channel <- odbcConnect("test", uid="root", pwd="123");
 sqlTables(channel);#查看数据中的表
 data<-sqlFetch(channel,"test")# 查看表的内容,存到数据框里

画直方图显示词频重合率

#做出百分比统计直方图
barplot(table(data$package)/sum(table(data$package)))
# 一共多少包
unique(data$package)

5R{(0[H8[NT`(]537FZ8BAL.png


点击标题查阅往期内容


F2O{5I`S3WO{{V(WGJ95(7T.png

【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享


左右滑动查看更多

01

JIU323V_I@~FOS]GKTQWI%S.png

02

N]TRCL_Y}4HLD2%(BJESPSJ.png

03

J]R63G{7UBS]0C_E2TUIMPY.png

04

3J~XO0Z94F}_I96HOKEKDDI.png



删去没有重复的包

norepeat=which(table(data$package)==1)
data=data[-as.numeric(norepeat),]
for(i in names(table(data$package))[index][-1]){
  #找出project名
  data$project[data$package ==i]

变换数据

cordata2=matrix(0,length(unique(data$project)),length(unique(data$package)))
colnames(cordata2)=unique(data$package)
rownames(cordata2)=unique(data$project)

计算出重复率

L0UU56EUHER(]IJ]R95_BGF.png

画网络图

这个是git上的项目,每一个点是一个项目,不同颜色表示不同语言,每个点之间有线连着,表示每个项目的联系,可能是关注人一样,也可能是作者一样 。当把包名打上标签后,有可能不同包名是一个标签,那么就可以画出这种联系图。

}
  }
  close(f)
  cat(paste(c("Successfully output to ", getwd(), "/", filename, "/n"), collapse=""))
}
topajek(events, filename="mypajek.net")

对图进行删减,删去连接少的边

newe = censor.edgeweight(e, floor=0.5); newe
V(e)$color = rainbow(max(V(e)$sg),alpha=0.8)[V(e)$sg]
plot(newe,layout=layout.fruchterman.reingold, vertex.size=5,
     vertex.color=V(e)$color, edge.width=1,edge.arrow.size=0.08,

用网络图可视化

所有数据:

%)93N{W$3O0%8Y@SORIE(LV.png

以chat为基地:

5AZ2B68~)$6YOGL3YU0GRSV.png

以email为基地:

ZPNB)Q3`8IOJ~{W0B17]8DD.png

相关视频

0W04(@E3KE]O}@WELBUY4DJ.png



Kmeans算法聚类

聚类数为3,将数据聚成3个类别

y$name1=as.numeric(y$name)

相关视频

Z(VERVI@4RJS63@JBN_@C46.png

可视化聚类结果

B]`L5H]A`94}7IM`9968FTA.png

TT96A$5BSM}))BKK{RZ`2D9.png

相关文章
|
4天前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
1天前
|
Java 开发工具 Android开发
如何在Eclipse中查看Android源码或者第三方组件包源码(转)
如何在Eclipse中查看Android源码或者第三方组件包源码(转)
10 4
|
4天前
|
移动开发 数据可视化
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
|
4天前
|
机器学习/深度学习 数据可视化
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
|
4天前
|
数据可视化
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码2
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码
|
4天前
|
数据可视化 数据挖掘
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码1
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码
|
4天前
|
前端开发 数据可视化
R语言广义线性混合模型(GLMM)bootstrap预测置信区间可视化
R语言广义线性混合模型(GLMM)bootstrap预测置信区间可视化
|
4天前
|
机器学习/深度学习 数据可视化 算法
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为1
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
4天前
|
机器学习/深度学习 数据可视化 算法
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
R语言神经网络与决策树的银行顾客信用评估模型对比可视化研究
|
4天前
|
存储 数据采集 数据可视化
R语言拟合线性混合效应模型、固定效应随机效应参数估计可视化生物生长、发育、繁殖影响因素
R语言拟合线性混合效应模型、固定效应随机效应参数估计可视化生物生长、发育、繁殖影响因素