复杂数据处理(下):1816-2013年拉萨年平均气温变化分析(附数
作者:郭小龙,R语言中文社区专栏作者。知乎专栏:https://www.zhihu.com/people/guo-xiao-long-3-18/posts 上篇戳:复杂数据处理(上):航班航行距离与延误时间的关系 公众号后台回复“西藏”下载数据集 西藏拉萨一直是很多人心目中向往的圣地,也是我心目中最想去的地方之一。蓝天白云、布达拉宫、藏传佛教等等,每年光顾的骑行者、旅游者以及佛教徒络绎不绝。作为中国受工业经济发展影响较少的城市,近百年来气候变化又如何呢?本文从年平均气温角度,用R语言简单分析了拉萨1816-2013年的年平均气温变化。 1、数据来源说明 研究数据来源于Kaggle网站的全球城市气温资料,其中包括全球主要国家大部分城市的气温、经纬度等信息(见下图)。本文研究的是拉萨1816-2013年的气温数据,计算平均气温时删去一年不够12个月的数据。 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,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)结论 3、收获和总结 (1)本次学习解决了打开RStudio文件时中文乱码问题。通过在弹出的编码中,选择UTF-8编码,具体方法如下。 (4)dplyr包的管道函数(%>%)省略了中间的赋值步骤,在初期学习代码相对简单情况下可能用处不大,但随着代码复杂时管道函数的作用会越来越大。 (5)数据处理的模块化思维和代码的断点调试等知识,是贯穿程序语言学习始终的。这块知识属于方法论,后续学习中一定要逐步实践实践再实践。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |