R语言的神奇

R语言“基于向量”的神奇

对于大多数语言来说,当我们需要计算两个向量相加时,我们需要分别对这两个向量的元素进行遍历;R语言不一样,非常简单就能实现。

#产生一个1到13的向量
c1<-1:13

#让c1加上6:18,可以如下执行
c1+6:18
[1]  7  9 11 13 15 17 19 21 23 25 27 29 31

#如果不小心写错了,两个向量没有对齐,没有关系;可以运算,短向量会自动再循环一次;但是有警告
 c1+6:21
 [1]  7  9 11 13 15 17 19 21 23 25 27 29 31 20 22 24
Warning message:
In c1 + 6:21 : 长的对象长度不是短的对象长度的整倍数

R语言中神奇的运算符

  • &是对两个向量里面的所有元素分别判断是否都为true,而&&就只针对两个向量里面的第一个元素,因此在这种情况下,两个向量的长度可以是不相等的。
#
 c(3,2,1,5) & c(21,32,1,-5)
[1] TRUE TRUE TRUE TRUE

 c(3,2,1,5) && c(21,32,1,-5)
[1] TRUE 
  • &是R语言支持的逻辑运算符,它只适用于逻辑、数据及复杂类型的向量,所有非0数值都被认为逻辑值为True;
#只要有0即为False
c(3,2,0.001,5) & c(21,32,-1,0)
[1]  TRUE  TRUE  TRUE FALSE

c(3,2,0,5) & c(21,32,-1,0)
[1]  TRUE  TRUE FALSE FALSE

c(3,2,0,5) & c(21,32,T,0)
[1]  TRUE  TRUE FALSE FALSE

#有F也会产生F
c(3,F,0,5) & c(21,32,T,0)
[1]  TRUE FALSE FALSE FALSE
  • %in%用来标识一个元素是否位于某个向量之中,或者说,是否属于某个集合。但它不能判断一个集合是否包含于另一个集合,我们可以用两次%in%来实现判断集合之间的包含关系。
#元素判断
12 %in% 2:21
[1] TRUE
12 %in% 13:21
[1] FALSE
12.5 %in% 2:21
[1] FALSE

#向量判断
1:5 %in% 2:21
[1] FALSE  TRUE  TRUE  TRUE  TRUE
> 2:5 %in% 2:21
[1] TRUE TRUE TRUE TRUE

R语言神奇的画图能力

R语言身为一名开源语言,身后有世界各地的大牛在为他开发。R语言已经有了13000多个可用包,这么多的包,包含了各种各样的功能,因此越来越多的人来使用R,与MATLAB相比,R不仅占用内存小,功能强悍,而且免费。

今天,用maps这个包,它存有世界地图,美国地图,法国地图,以及加拿大城市地图等。

#世界地图
library(maps)
Warning message:
程辑包‘maps’是用R版本4.1.3 来建造的 

map('world',fill=T)

map('world',fill=T,col=rainbow(13))

R语言的神奇

#美国地图
 map('state',fill=T,col=rainbow(13))
R语言的神奇

数据科学 (Data Science)

数据科学是指通过挖掘数据、处理数据、分析数据,从而得到有用信息的技术和研究,再将这些信息应用到不同领域的各个方面。该学科结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算等,覆盖知识面非常广。

R语言的神奇

R语言在业务分析、数据科学方面都拥有完善的工具支持,在深度学习方面的应用比较弱。

Python非常适合机器学习和深度学习。但是在市场报告方面的优势不大,能用于统计经济学等重要领域的库比较少。深度学习在数据科学中的应用不多,而且在需要深度学习或者其他API时,R语言可以和Python集合。

美国招聘市场上,Python方面在招职位的数量,是R语言的2.4倍

但是了解、掌握Python的人,也比掌握R语言的更多;可能达到4-32倍。

R语言的一些基础技能:

  • 导入数据:使用数据库,连接到SQL,readr包, readxl包;
  • 转换数据:处理异常值、缺失数据、重塑数据、聚合、过滤等;
  • 可视化数据:静态/交互式数据可视化,ggplot2以及plotly;
  • 处理文本数据、函数式编程……

R语言的一些高级应用(如机器学习)需要掌握的技能如下:

  • 时间序列分析:处理日期/日期时间数据、聚合、转换、可视化时间序列、使用timetk
  • 预测:ARIMA、指数平滑、Prophet、机器学习(XGBoost、随机森林、GLMnet 等)、深度学习(GluonTS)、集成、调整超参数、扩展预测、modeltime包。

进行到这一步后,你就可以尝试去创建一个模型并投入使用了。

R语言在线地图神器

LeafletR主要是用R语言的语法封装了JS版的Leaflet,可以在R语言的plot窗口,利用html5技术显示各种地图,还可以绘制自己的要素图形。

它有如下功能:

  • 交互地图浏览(缩放、平移)
  • 使用多种地图进行任意组合
  • 加载地图瓦片(WMTS)
  • 点要素定位标记
  • 多边形要素标记
  • 线要素标记
  • 弹出窗口
  • 解析加载GeoJson
  • 从R或者RSutido创建地图窗口
  • 可以把地图嵌入 knitr/R包所生成的Markdown文档中,或者是Shiny制作的APP中。
  • 可以直接获取通过SP包生成就(加载)的空间对象以及包含经纬度的数据框进行展示。
  • 可以设定地图范围以及封装自定义的鼠标事件。

这个包的基本使用步骤如下:

1、加载leaflet包。

2、通过leaflet包创建地图控件。

3、通过图层操作的方法(如addTiles、 addMarkers、 addPolygons)来处理图层数据,并且修改地图插件的各种参数,来把图层显示在地图控件上。

4、可以重复第三步,可以增加更多的图层数据。

5、把地图部件显示出来,完成绘图。

#
library('leaflet')

m <- leaflet()
at <- addTiles(m)
addMarkers(at,lng=113, lat=28.112, popup="这里是云塘")


R语言的神奇

对于这种需要重复进行容器嵌套的写法,可以使用管道操作符“%>%”来实现,它的主要作用就是把前面的语句(变量)传递给下一个语句,并且作为第一个参数使用,上面那三个语句,利用管道操作符来写,如下,输出结果是完全一样的,但是语句变得简单了。

leaflet()%>%addTiles()%>%addMarkers(lng=113, lat=28.112, popup="这里是云塘")

leaflet包支持各种与空间信息有关的对象,包括使用sp包定义的空间对象,和R语言中带有空间信息的数据框等,如下所示:

与R相关的:

由经纬度信息组成矩阵

带有经纬度字段的数据框。

与sp包相关的:

SpatialPoints[DataFrame]

Line/Lines

SpatialLines[DataFrame]

Polygon/Polygons

地图控件的基本方法有下面这三个:
setView() :设定地图的显示级别缩放比例、和地图的中心点。
fitBounds():设定地图的范围,一般是一个矩形,结构是:[lng1, lat1] – [lng2, lat2]。
clearBounds():清除地图的范围设定。

#
 leaflet()%>%setView(lng=46.38,lat=30,zoom=3)%>%addTiles()
R语言的神奇

R语言在线地图神器:Leaflet for R包(一)_虾神说D的博客-CSDN博客_r语言leaflet

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章