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

相关文章
|
8月前
|
弹性计算 运维 Kubernetes
看阿里云操作系统控制台如何一招擒拿网络丢包
阿里云操作系统控制台帮忙客户快速定位问题,不仅成功完成业务部署并实现稳定运行,更有效遏制了持续性成本消耗。
|
API 数据处理 Android开发
Android网络请求演变:从Retrofit到Flow的转变过程。
通过这个比喻,我们解释了 Android 网络请求从 Retrofit 到 Flow 的转变过程。这不仅是技术升级的体现,更是反映出开发者在面对并发编程问题时,持续探索和迭求更好地解决方案的精神。未来,还会有更多新的技术和工具出现,我们期待一同 witness 这一切的发展。
439 36
|
10月前
|
Web App开发 缓存 JavaScript
Android网络小说阅读器的实现
小说阅读Demo,。此Demo使用Jsoup解析HTML,实现小说数据抓取(数据源自网络),并包含自定义View、六章小说缓存等功能,但未实现下载。项目还包括屏幕适配、字体设置等,借助第三方框架完成优化。以下是主页、详情页、阅读页等界面展示。
327 0
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
481 15
|
Kubernetes Shell Windows
【Azure K8S | AKS】在AKS的节点中抓取目标POD的网络包方法分享
在AKS中遇到复杂网络问题时,可通过以下步骤进入特定POD抓取网络包进行分析:1. 使用`kubectl get pods`确认Pod所在Node;2. 通过`kubectl node-shell`登录Node;3. 使用`crictl ps`找到Pod的Container ID;4. 获取PID并使用`nsenter`进入Pod的网络空间;5. 在`/var/tmp`目录下使用`tcpdump`抓包。完成后按Ctrl+C停止抓包。
460 12
|
数据采集 机器学习/深度学习 数据可视化
探索大数据分析的无限可能:R语言的应用与实践
探索大数据分析的无限可能:R语言的应用与实践
543 9
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
381 32
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
Web App开发 网络协议 安全
网络编程懒人入门(十六):手把手教你使用网络编程抓包神器Wireshark
Wireshark是一款开源和跨平台的抓包工具。它通过调用操作系统底层的API,直接捕获网卡上的数据包,因此捕获的数据包详细、功能强大。但Wireshark本身稍显复杂,本文将以用抓包实例,手把手带你一步步用好Wireshark,并真正理解抓到的数据包的各项含义。
5355 2
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。

热门文章

最新文章