复杂数据处理(下):1816-2013年拉萨年平均气温变化分析(附数据集)

浏览: 1792

作者:郭小龙R语言中文社区专栏作者。知乎专栏https://www.zhihu.com/people/guo-xiao-long-3-18/posts

上篇戳:复杂数据处理(上):航班航行距离与延误时间的关系

西藏拉萨一直是很多人心目中向往的圣地,也是我心目中最想去的地方之一。蓝天白云、布达拉宫、藏传佛教等等,每年光顾的骑行者、旅游者以及佛教徒络绎不绝。作为中国受工业经济发展影响较少的城市,近百年来气候变化又如何呢?本文从年平均气温角度,用R语言简单分析了拉萨1816-2013年的年平均气温变化。

1、数据来源说明

研究数据来源于Kaggle网站的全球城市气温资料,其中包括全球主要国家大部分城市的气温、经纬度等信息(见下图)。本文研究的是拉萨1816-2013年的气温数据,计算平均气温时删去一年不够12个月的数据。

image.png

2、用R语言进行数据分析处理和绘图

(1)读取下载的CSV格式全球气温资料

###读取下载的全球城市气温数据
library(openxlsx)
readFilepath <- "G:/大数据作业实践和有用资料/第四关作业实践/下载环境数据/GlobalLandTemperaturesByCity.csv"
Temdata <- read.csv(readFilepath,header = TRUE,sep = ",")

(2)数据预处理:选择子集

#选择子集
library(dplyr)
myData <- select(Temdata,
                dt,AverageTemperature,City,Country)

(3)数据预处理:删除缺失数据并选择拉萨

ChinaData <- filter(Temdata,
                !is.na(AverageTemperature),
                !is.na(City),
                !is.na(Country),
                Country == "China",
                City == "Lasa")
ChinaData <- select(ChinaData,
                   dt,AverageTemperature,City)

(4)数据预处理:对列进行拆分和重命名

#对列进行拆分和重命名
library(stringr)
timeDate <- str_split_fixed(ChinaData$dt,"-",n = 3)
ChinaData$dt <- timeDate[,1]                       #想要实现把1986-03-01分解成年月日3列,后面继续研究
ChinaData$dt <- as.numeric(ChinaData$dt)           #年字符段转换为数值型,这一步非常重要,否则影响后续分组计算
ChinaData <- rename(ChinaData,AveT = AverageTemperature)

(5)数据的分组和计算

###数据按年份进行分组并计算
#按年份进行分组
Year_data <- group_by(ChinaData,dt)
TLasa <- summarise(Year_data,
                    count = n(),
                    T = mean(AveT,na.rm = TRUE))
TLasa <- filter(TLasa,count > 11)

(6)数据的图形绘制

###数据图形显示
library(ggplot2)
ggplot(data = TLasa) +
 geom_point(mapping = aes(x = dt,y = T)) +
 geom_smooth(mapping = aes(x = dt,y = T))

(7)结论

image.png

从1816年至2012年(上图横坐标表示年份,纵坐标表示温度),随着时间的推移,拉萨年平均气温呈逐年上升的趋势,并且从90年代开始呈加速上升趋势。

3、收获和总结

(1)本次学习解决了打开RStudio文件时中文乱码问题。通过在弹出的编码中,选择UTF-8编码,具体方法如下。

image.png

(2)代码写好后运行没错,但再打开时前面总出现感汉号。是因为Tool—Global Options—code—中“变量没有定义是否报警”或“变量有定义但是没有使用进行提示”被选中。我个人觉得这个提示符号特别不舒服,坚决去掉^_^^_^^_^

image.png

(3)R语言特有的诊断(如空格的提示),对养成良好的代码习惯编写很有帮助,强烈建议选中code界面中“Provide R style diagnostics”选项。

(4)dplyr包的管道函数(%>%)省略了中间的赋值步骤,在初期学习代码相对简单情况下可能用处不大,但随着代码复杂时管道函数的作用会越来越大。

(5)数据处理的模块化思维和代码的断点调试等知识,是贯穿程序语言学习始终的。这块知识属于方法论,后续学习中一定要逐步实践实践再实践。


image.png

公众号后台回复关键字即可学习

回复 R               R语言快速入门免费视频 
回复 统计          统计方法及其在R中的实现
回复 用户画像   民生银行客户画像搭建与应用 
回复 大数据      大数据系列免费视频教程
回复 可视化      利用R语言做数据可视化
回复 数据挖掘   数据挖掘算法原理解释与应用
回复 机器学习   R&Python机器学习入门 

推荐 0
本文由 R语言中文社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册