编程语言
首页 > 编程语言> > 社交网络分析的 R 基础:(一)初探 R 语言

社交网络分析的 R 基础:(一)初探 R 语言

作者:互联网

社交网络分析

过去几十年信息技术的发展,现在人们已经生活在一个充满各种各样复杂网络的社会。你也许无法想象人类社会和网络有什么关系,举几个例子你就会明白,比如:使用微信或微博所涉及的社交网络;一到早晚高峰就堵车的城市交通路网;定期检修的电网与自来水管网等等。这些不同领域的背后都涉及到一个复杂的网络,而这些都属于网络科学的范畴。而社交网络分析,只是其中的一个方向。

社交网络分析有很多应用场景:

  1. 最常见的是购物软件或视频应用中的推荐,通过分析一类用户的行为去推测可能喜欢的商品或视频;
  2. 其次是识别社交网络中不同的圈子,俗话说物以类聚,人以群分;
  3. 在将网络划分为不同圈子后,即可对不同的群体进行精准营销,或者强化消息的传播;
  4. 通过分析社交网络中的关键节点,及时切断关键节点以阻止负面信息的传播等等。

R 简介

作为一个 R 语言的初学者,没有人会关心 R 的发展历史,因为学习一门语言的最终目的还是为了将其作为一种工具使用。你问我知道吗,我当然也不知道。为了让本章的内容更加的充实,我从维基百科摘录了一些内容。

R 语言是一种自由软件编程语言与操作环境,主要用于统计分析、绘图以及数据挖掘。R 本来由来自新西兰奥克兰大学的统计学家罗斯·伊哈卡和罗伯特·杰特曼开发,现在由 R 开发核心团队负责开发。伊哈卡与杰特曼两人名前缀字母都是 R,R 语言因此得名。同时,R 这个单一字母的名字也表明 R 语言与 S 语言一脉相承。通常用 S 语言编写的代码都可以不作修改地在 R 环境下运行。R 的语法来自 Scheme。R 的后台程序大多由 C 语言、FORTRAN 语言和 R 自己写成。

R 语言第一次正式发布于 1995 年。第一次正式的“稳定测试版”(v1.0)于2000年2月29日发布。

R 与 Python

根据 StackOverflow 2021 年开发者报告的数据来看,排除掉“全世界都在写前端”的这个原因,Python 当之无愧“天下第一”的称号,曾经的“天下第一” PHP 也已经排在了第 11 名的位置,至于 R 语言,则排在了 20 名开外。那么这是不是就意味着我们要去学习 Python?

当我们需要去学习一门新的编程语言时,自然是我们掌握的工具、资源已经无法满足解决新问题的需要,那么新学习的语言必然要拥有丰富的解决方案供我们使用。对于社交网络分析而言,Python 与 R 都拥有非常优秀的类库,像 Python 中的 NetworkX , R 中的 igraph 。但 R 语言起家于统计分析,因此关于数据科学的类库也更多,对于数据分析也更优秀些,同时还可以制作精美的图表。

其次要考虑学习成本。Python 作为一个万金油,加上一个“容易学习”名头,足以吸引大部分人的目光。但是我认为初学 Python 上手很慢,Python 丰富的语法糖特性很容易造成初学者理解困难。R 作为一个面向对象的语言,但由于其存在不同实现面向对象的类型(S3、S4……),某种程度上来说 R 的面向对象不强。对初学者来说,面向对象通常很难理解,而 R 语言常用的功能大部分是以函数提供的,很容易实现面向过程的编程,这样就能专注于解决问题本身,而不是去弄明白程序为什么要这么写。

最终不管是选择 R 还是 Python ,解决问题是关键,语言只不过是过程中的一个工具。如果你有 Python 基础,好好学习 NetworkX 包就能达到目的;如果你其他语言基础较弱,也不清楚什么是面向对象,那么 R 语言可能是更好的选择。

标签:社交网络,基础,语言,发展,交通,R语言
来源: