R语言中如编写业务模块

文章中图片均来自猴子大数据直播。

在数据处理中,我们并不是把所有的代码都放在一个.R文件中,而是按照一个个模块进行存放,在需要进行修改和编译的时候,可以更为快捷和高效找到目标模块。尤其在处理复杂数据和业务工作时,业务模块才真正发挥作用。(用机器语言的思维进行理解)

R语言中如编写业务模块_第1张图片
第一步,树立模块化认识

一般模块化包括:视图模块(view),业务逻辑模块(service),数据层模块(db),公关模块(util),公共数据(data),日志模块(log),数据结果输出模块(output)。

R语言中如编写业务模块_第2张图片

也就是说,一个成熟的数据分析流程一般包含以上文件。

R语言中如编写业务模块_第3张图片

数据层模块db: 操作数据库相关数据,可查询数据,联接数据框;

业务逻辑模块service:存放一些通用的业务分析指标,主要分析代码;

视图模块view:用于存放可视化结果。

公共数据模块data:项目中常用到的数据。

日志模块log:数据处理中,加入一些日志的记录,了解数据处理的流程。

数据输出模块output:主要是输出各类结果,比如保存为PDF或者数据报告。

公关模块util:项目相关的配置信息。比如在直播中,util中存放的是R脚本——分析中用到的第三方的包,都放到这个里面。避免一些重复的工作。

R语言中如编写业务模块_第4张图片
公关模块

比如下面的公关模块util中包括的内容,避免重复安装。

#管理安装包
# 数据包
packages <- c("nycflights13")
if (length(setdiff(packages, rownames(installed.packages()))) > 0) {
  install.packages(setdiff(packages, rownames(installed.packages())))  
}
#字符串包
packages <- c("stringr")
if (length(setdiff(packages, rownames(installed.packages()))) > 0) {
  install.packages(setdiff(packages, rownames(installed.packages())))  
}
#图形包
packages <- c("ggplot2")
if (length(setdiff(packages, rownames(installed.packages()))) > 0) {
  install.packages(setdiff(packages, rownames(installed.packages())))  
}
#数据处理包
packages <- c("dplyr")
if (length(setdiff(packages, rownames(installed.packages()))) > 0) {
  install.packages(setdiff(packages, rownames(installed.packages())))  
}
R语言中如编写业务模块_第5张图片
业务逻辑模块

业务逻辑模块service:可存放数据分析中相关指标代码,或者相关示例。

R语言中如编写业务模块_第6张图片
视图模块

视图模块view:放置绘图相关代码。

第二步,各个模块下的R脚本如何互相调用
  • a,公关模块util
  • b,业务逻辑模块service
  • c,视图模块
R语言中如编写业务模块_第7张图片
#1.首先定义好R路径
#当前项目运行根路径
#"E:/猴子大数据分析课程/系列课程《从零学会大数据核心:数据分析》/第4讲:复杂数据处理和分析/源代码和数据/da"
projectPath <- getwd()
#业务逻辑模块路径
#"E:/猴子大数据分析课程/系列课程《从零学会大数据核心:数据分析》/第4讲:复杂数据处理和分析/源代码和数据/da/service/flight.R"
servicePath <- str_c(projectPath,
                     "service",
                     "flight.R",
                     sep="/")

#2导入业务逻辑中的R文件
#编译R文件
source(servicePath)
    
#3使用业务逻辑中的方法
#业务逻辑:航班航行距离与延误时间的关系
delay<-disDelay()

#4图形可视化
#散点图
view <- ggplot(data = delay) + 
  geom_point(mapping = aes(x = dist, y = delay))+
  geom_smooth(mapping = aes(x = dist, y = delay))
#保存分析结果
outputpath <- str_c(projectPath,"output","delayFlight.jpg",sep="/")
ggsave(filename=outputpath, plot=view)
R语言中如编写业务模块_第8张图片
应该是这幅图:
R语言中如编写业务模块_第9张图片
output
可事实上是:
R语言中如编写业务模块_第10张图片

出现了错误信息。截止目前还没有搞明白。继续努力。

你可能感兴趣的:(R语言中如编写业务模块)