老婆是学经济学的,之前用过R语言,也因此知道了R语言在统计分析中的强大之处,后来也了解到,R语言是做生物信息学的重要分析工具,因此对此颇有兴趣。
正好上周Professor告诉我,罗马一大有个R课程,如果我有兴趣,可以去学习一下,我当然是非常有兴趣,因此跑过去听了两天节课,虽然老师全程用英语授课,但是其语速之快,连其他好几个意大利学生都没能怎么听清楚,我也就只能听懂一部分,不过还好,跟着老师的例子进行,加上之前自学了PHP,算得上有一些编程上的思维,也就勉强能跟得上,后来回来之后又各种百度谷歌搜了一下
由于我平时做网站前段比较多,最近有正好需要更新一个数据库表,因此我就这样挑了个坑分非常多的小项目——操作含中文字符的mysql,开始了我的R之旅,其中的恶心程度,难以言喻
背景:已有一份完整的期刊分区与影响因子的表,含有2008年至2018年的影响因子,以及2017年的中科院分区,当然还包含期刊名、issn、所属分类(中文字符),投稿建议(中文字符),投稿难度(中文字符),审稿周期(中文字符)等必要字段。
目的:将中科院发布的2018年的分区、web of science发布的2019年影响因子更新到上述表中,并添加2019年web of science新增的期刊(以及老的表中之前遗漏期刊)
关键点:将最新数据按照期刊一一对应的关系更新到老的数据库表中
坑:可能老外在设计R语言的时候,就压根没考虑过会有人拿来操作mysql数据库表中的中文字符吧
其他的不多说了,直接上源码(虽然代码只有这么几行,但是作为新手的我,耗费了周末两整天才搞定)
#install.packages("RMySQL")
install.packages("RODBC")
#library(RMySQL)
library(RODBC)
conn
#连接数据库
factor
#获取factor数据库表内的数据,stringsAsFactors = FALSE 表示不将字符串转换为factor因子,表观体现为:去掉个元素后面的levels
fenqu
#以UTF-8编码读取中科院发表的最新分区数据
if2019
#以UTF-8编码读web of science发表的最新影响因子数据
if2019
#删除影响因子中的Rank这一列(多余操作)
factor
#删除factor中,fenqu这一列(因为这一列是去年发布的,已经过期了,所以需要删除)
factor$fenqu