APP下载

R 软件在地下水环境质量评价中的应用

2021-01-05丁振军

环境保护与循环经济 2020年11期
关键词:赋分硝基甲苯

丁振军

(辽宁省生态环境监测中心,辽宁沈阳 110161)

1 引言

2018 年十三届全国人大一次会议表决通过了关于国务院机构改革方案的决定。方案提出,原国土资源部的监督防止地下水污染职责划转到新组建的生态环境部。2019 年生态环境部、自然资源部、住房和城乡建设部、水利部和农业农村部五部委联合印发了《地下水污染防治实施方案》,要求建立全国地下水环境监测体系,2020 年底前整合建设项目环评要求设置的地下水污染跟踪监测井、地下水型饮用水源开采井、土壤污染状况详查监测井、地下水基础环境状况调查评估监测井、《中华人民共和国水污染防治法》要求的污染源地下水水质监测井,完善地下水监测数据报送制度。《水污染防治行动计划》(以下简称“水十条”)考核点位要求“十三五”期间考核《地下水质量标准》(GB/T 14848—93)中pH、氨氮等19 项指标,按综合评价方法进行评价。而构建生态环境部门地下水监测网络需按照《地下水质量标准》(GB/T 14848—2017)评价每个点位和指标的水质类别,最多需要评价93 项指标。生态环境部门地下水环境质量评价任务日益繁重,急需一种减轻简单重复工作的方法,R 软件不失为一个很好的选择。

2 R 与RStudio 简介

R 是Ross Ihaka 和Robert Gentleman 于1995 年开发的,起源于贝尔实验室的S 语言。R 是一种为统计计算和绘图而设计的语言和环境,是免费开源的数据分析软件。它还是一个全面的统计研究平台,提供了多种数据分析技术,几乎任何类型的数据分析工作皆可在R 中完成,而且其还拥有顶尖的制图功能。其拥有自己的代码库,CRAN(Comprehensive R Archive Network)是一个比较完善的R 包库,用户可以很容易为其贡献代码。R 包是一个包含R 函数、数据和编译代码的集合,R 包在R 中用一行代码即可安装,使用非常方便。由于其具有免费开源性,所以R 可以很快地从统计学家和数据科学家那里得到最新的统计模型,这是其他商业收费软件无法比拟的[1]。

R 自带的环境操作起来可能不是很方便,而RStudio 很好地解决了这个问题。RStudio 是R 的一个集成开发环境(IDE),它包含语法编辑器、控制台、环境窗格、绘图结果等,而且它还具有调试、可视化等功能。

3 R 与RStudio 的安装

R 可以在CRAN(cran.r-project.org)上免费下载,Linux,Mac OS X 和Windows 都有相应编译好的版本,根据选择平台的安装说明进行安装即可[2],本文版本为version 4.0.0。RStudio 可在官方网站(www.rstudio.com)下载并安装,本文版本为version 1.2.1335。因RStudio 是以R 为基础的,所以在安装RStudio 之前要先安装R。

4 R 软件的应用

4.1 在地下水考核点位评价中的应用

“水十条”地下水考核点位考核评价按照综合评价法进行,参照《地下水质量标准》(GB/T 14848—93)指标包括pH、氨氮、硝酸盐、亚硝酸盐、挥发性酚类、氰化物、砷、汞、铬(六价)、总硬度、铅、氟化物、镉、铁、锰、溶解性总固体、高锰酸盐指数、硫酸盐、氯化物,共19 项,首先进行各单项组分的评价,划分组分所属质量类别,然后对各类别进行F 值赋分,Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ类分别赋予0,1,3,6,10 分,然后再算出综合评价分值F[3]。由于点位数量及考核指标众多,如用人工划分单项组分质量类别并进行赋分,时间成本巨大且易出错,可以使用R 软件进行质量类别的划分和F 值的赋分。

4.1.1 数据的处理

应用R 进行质量类别的划分和赋分时,需对数据进行整理,新建Excel 表并命名为“x1”,表中行为点位名称,列为19 项考核指标名称(无需考虑指标排列顺序)。因在R 的函数中括号(())、逗号(,)和短横杠(-)有其特殊功能,所以列名中指标名称应删除括号和逗号,短横杠可以用下划线(_)代替,以免发生错误。Excel 样表模板见表1。

表1 Excel 样表模板

4.1.2 数据的读取

数据读取可以使用RStudio 中的导入Excel 功能实现,操作如下:点击“Import Dataset”→“From Excel”,在弹出的“Import Excel Data”窗口点击“Browse”按钮选择所需的Excel 表,点击“Import”按钮完成数据的读取。首次导入Excel 表时,RStudio 会自动安装readxl 程序包。

监测的指标中除pH 外,其他指标均有可能出现小于检出限的现象,数据报送时一般以“<检出限”或“检出限L”形式给出,在数据读取“Import Excel Data”窗口界面时,可点击指标名称旁下拉箭头,将小于检出限的指标的数据类型由字符型(character)改为数值型(numeric),此时小于检出限的单元格变为缺省值(NA)。其他无小于检出限的指标默认数据类型为双精度浮点型(double),无需修改。

4.1.3 R 代码实现

R 软件实现19 项指标综合评价质量类别的划分和F 值的赋分,可以使用基础包(base)中的cut()函数进行区间划分,代码根据指标分为2 类。第一类为pH,pH 6.5~8.5 为Ⅰ类水质,赋0 分,超出这个范围水质类别为Ⅳ类或Ⅴ类,赋6 分或10 分。故pH指标R 代码如下:

#1pH

>breakpH <- c(0,5.49,6.49,8.5,9,14)

>labelspH =c(10,6,0,6,10)

其他18 项指标为第二类,以氨氮和硝酸盐为例,其余可据此修改。R 代码如下:

#2 氨氮

>break 氨氮<- c(0,0.02,0.2,0.5,Inf)

>labels 氨氮=c(0,3,6,10)

#3 硝酸盐

>break 硝酸盐<- c(0,2,5,20,30,Inf)

>labels 硝酸盐=c(0,1,3,6,10)

19 项指标依次进行区间划分并赋分后,在RStudio 默认路径下新建csv 文件x2,在19 项指标后新增19 列赋分结果,并以“F 指标名称”命名。R代码如下:

>x2 <- cbind(x1,FpH,F 氨氮,F 硝酸盐,F 亚硝酸盐,F 挥发性酚类,F 氰化物,F 砷,F 汞,F 铬六价,F 总硬度,F 铅,F 氟化物,F 镉,F 铁,F 锰,F 溶解性总固体,F 高锰酸盐指数,F 硫酸盐,F 氯化物)

>write.table(x2,file ="地下水分级赋分1993.csv",sep=",",row.names=F)

查询RStudio 默认路径可以使用getwd()命令,更改默认路径可以使用setwd("路径名")命令。csv文件可以使用Excel 打开或另存为Excel 文件。x1 表中小于检出限的单元格即缺省值(NA),在x2 表中新生成的“F 指标名称”列仍为字符NA,可在Excel中整体将新生成列中NA 替换为0,即Ⅰ类水质对应的F 值。

4.2 在地下水监测评价中的应用

地下水试点监测与例行监测评价时,使用的标准为《地下水质量标准》(GB/T 14848—2017),指标包括其表1 中感官性状及化学指标、微生物指标、毒理学指标、放射性指标39 项,以及其表2 中毒理学指标54 项,共93 项指标[4]。Excel 表的新建与命名、数据的处理和读取都可以参考地下水考核点位评价操作。

93 项指标的R 代码实现根据指标分为4 类,第一类为pH,R 代码与地下水考核点位评价相同。第二类为嗅和味、肉眼可见物2 项指标,因其评价标准为“有”或“无”,为字符型变量(character),在数据处理时不要将其更改为数值型变量(numeric)。对这2项指标的评价可以使用R 基础包中gsub()函数实现。R 代码如下:

#2 嗅和味

>L 嗅和味<- gsub("无","1",L 嗅和味)

#4 肉眼可见物

>L 肉眼可见物<- gsub("无","Ⅰ",L 肉眼可见物)

第三类为以数字开头的指标,如“2,4-滴”。在数据处理时,名称中的逗号和短横杠均已被处理,其名称已变为“24_滴”。这类以数字开头的指标,在进行引用的时候应以[[""]]代替美元符号,以2,4-二硝基甲苯和2,4-滴为例,R 代码如下:

#28 2,4-二硝基甲苯

>break24_ 二硝基甲苯<- c(0,0.1,0.5,5,60,Inf)

>labels24_二硝基甲苯=c(1,2,3,4,5)

>L24_ 二硝基甲苯<- cu(tx1[["24_ 二硝基甲苯"]],break24_二硝基甲苯,labels24_二硝基甲苯,include.lowest =T)

#44 2,4-滴

>break24_滴<- c(0,0.1,6,30,150,Inf)

>labels24_滴=c(1,2,3,4,5)

>L24_滴<- cu(tx1[["24_滴"]],break24_滴,labels24_滴,include.lowest =T)

第四类为其他指标,R 代码与地下水考核点位评价第二类相似,可参照编写。93 项指标依次进行区间划分后,在RStudio 默认路径下新建csv 文件x2,在93 项指标后新增93 列质量等级划分结果,并以“L 指标名称”命名。R 代码如下:

>x2<- cbind(x1,L 色,L 嗅和味,L 浑浊度,L 肉眼可见物,LpH,L 总硬度,L 溶解性总固体,L 硫酸盐,L 氯化物,L 铁,L 锰,L 铜,L 锌,L 铝,L 挥发性酚类,L 阴离子表面活性剂,L 耗氧量,L 氨氮,L 硫化物,L 钠,L 总大肠菌群,L 菌落总数,L 亚硝酸盐,L 硝酸盐,L 氰化物,L 氟化物,L 碘化物,L 汞,L 砷,L 硒,L 镉,L 铬,L 铅,L 三氯甲烷,L 四氯化碳,L 苯,L 甲苯,L 总α 放射性,L 总β 放射性,L 铍,L 硼,L 锑,L 钡,L 镍,L 钴,L 钼,L 银,L 铊,L 二氯甲烷,L12_二氯乙烷,L111_ 三氯乙烷,L112_ 三氯乙烷,L12_二氯丙烷,L 三溴甲烷,L 氯乙烯,L11_二氯乙烯,L12_ 二氯乙烯,L 三氯乙烯,L 四氯乙烯,L 氯苯,L 邻二氯苯,L 对二氯苯,L 三氯苯,L 乙苯,L 二甲苯,L 苯乙烯,L24_ 二硝基甲苯,L26_ 二硝基甲苯,L 萘,L 蒽,L 荧蒽,L 苯并b 荧蒽,L 苯并a 芘,L多氯联苯,L 邻苯二甲酸二2_乙基己基酯,L246_三氯酚,L 五氯酚,L 六六六,Lγ_六六六,L 滴滴涕,L 六氯苯,L 七氯,L24_滴,L 克百威,L 涕灭威,L 敌敌畏,L 甲基对硫磷,L 马拉硫磷,L 乐果,L 毒死蜱,L 百菌清,L 莠去津,L 草甘膦)

>write.table(x2,file ="地下水分级打分2017.csv",sep=",",row.names=F)

查询RStudio 默认路径可以使用getwd()命令,更改默认路径可以使用setwd("路径名")命令。csv文件可以使用Excel 打开或另存为Excel 文件。x1 表中小于检出限的单元格即缺省值(NA),在x2 表中新生成的“L 指标名称”列仍为字符NA,可在Excel 中整体将新生成列中NA 替换为Ⅰ,其他新生成列中水质质量类别由1,2,3,4,5 替换为Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ。

5 结语

在地下水考核点位、试点监测和例行监测评价时,应用事先写好的R 代码可以实现质量等级划分和F 值的赋分,而且可以忽略原始数据表格中指标的顺序,自动提取对应的指标列,并按指定顺序输出结果。整个过程迅速且不出错,极大地节约了人力及时间成本,且避免了人为判断失误。此方法也可扩展至地表水单项评价或其他类似的评价工作中。

猜你喜欢

赋分硝基甲苯
农业科研系列晋职初审程序电子化方案设计
——业绩赋分
硝基胍烘干设备及工艺研究
高效液相色谱法测定降糖药甲苯磺丁脲片中甲苯磺丁脲的含量
水热法合成WO3纳米片及其甲苯气敏性能研究
UOP公开一种生产高纯度甲苯和对二甲苯的方法
1-(对甲苯基)-2-(三对甲苯基-5-亚磷酰基)乙醛的汞(Ⅱ)配合物的X射线晶体学、光谱表征和理论计算研究
教育厅长因决策失误被责令辞职
浅析浙江新高考制度下的等级赋分制
出新不足,守正有余
双[2-(5-硝基-2H-四唑基)-2,2-二硝乙基]硝胺的合成与量子化学计算