R语言课程设计2

一、题目

全球自杀趋势与分析

1.1 题目意义

当今社会全球自杀现象较为普遍,研究这一现象非常具有实际意义

1.2 设计要求

数据分析与挖掘要求

(1)按照后续分析需求,对数据进行预处理。

(2)描述性统计:选择合适的方法对数据进行统计分析。包括对数值型和类别型属性的统计,并对分析结果进行图形化的展示。

(3)推断性统计:选择合适的假设检验方法,分析属性间的相关性、两组数据间是否具有显著性差异,并得出结论。

(4)数据挖掘

分别利用分类、聚类以及时间序列方法挖掘蕴含在数据中的模式。

注意,对聚类结果分析聚簇特征,必要时可画图分析。

对分类结果计算准确性。

使用时间序列分析方法可判断数据是否存在趋势、周期性等特征,或对数据进行预测。

(5)附加题:除了上述要求,自由选择方法,分析数据特征或挖掘蕴涵模式,并展示结果,如地理热图等。

二、相关包及所用到的函数的介绍

   tidyverse是一组处理与可视化R包的集合,其中ggplot2与dplyr最广为人知。

Ggalt包用于数据可视化,添加额外的坐标轴,geoms等

countrycode包中的countrycode函数可以将国家名和国家编码转换为需要的类型

   rworldmap就是用来表现全球尺度数据可视化的R包。

gridExtra包常用于控制图形的复杂布局和绘制文本表

   broom:用于将统计模型的结果整理成数据框形式

三、系统主要模块介绍

1.数据清理

2.统计全球自杀趋势

3.统计欧洲自杀趋势

4.按性别划分统计自杀趋势

5.按年龄划分统计自杀趋势

6.按国家来进行统计自杀趋势

7.画出相关地理热图

8.探究线性趋势

9.统计欧洲的自杀率性别差异

10统计不同国家的性别差异与自杀率的关联

11.统计欧洲的年龄差异与自杀率的关联

12探究富裕国家的自杀率是否更高

13.建立多元回归模型

14.线性拟和

15.探究年代与年龄与哪一年自杀率的关联

16探究自杀率的整体趋势

17探究男女自杀率随时间推移的影响

18探究2010年以后男性自杀人口比例

19.探究年龄率与自杀率
的关系

20探究男女比率与自杀率的关联

三、系统详细设计

1.导入需要用到的包

library(tidyverse)

library(ggalt)

library(countrycode)

library(rworldmap)
#快速国家级热图

library(gridExtra)

library(broom)

2数据导入与清洗

data
<- read_csv(“d:/master.csv”)

data
<- data %>%

select(-c(HDI for year, suicides/100k pop)) %>%

rename(gdp_for_year = gdp_for_year ($), #重命名

     gdp_per_capita = `gdp_per_capita ($)`,


     country_year = `country-year`) %>%

as.data.frame()

data
<- data %>%

filter(year != 2016) %>% # 过滤了2016年的数据

select(-country_year)

#选取不包括数据不超过3年的国家:

minimum_years
<- data %>%

group_by(country) %>%

summarize(rows = n(),

        years = rows / 12) %>%

arrange(years)

data
<- data %>%

filter(!(country %in%
head(minimum_years$country, 7)))

整理数据帧

data a g e < − g s u b ( " y e a r s " , " " , d a t a age <- gsub(" years", "", data age<gsub("years","",dataage)

data s e x < − i f e l s e ( d a t a sex <- ifelse(data sex<ifelse(datasex == “male”, “Male”,
“Female”)

#获取欧洲数据:

data$continent
<- countrycode(sourcevar = data[, “country”],

                          origin =

“country.name”,

                          destination =

“continent”)

象征性因素

data_nominal
<- c(‘country’, ‘sex’, ‘continent’)

data[data_nominal]
<- lapply(data[data_nominal], function(x){factor(x)})

对年龄排序

data a g e < − f a c t o r ( d a t a age <- factor(data age<factor(dataage,

               ordered = T, 

               levels = c("5-14",

“15-24”,

“25-34”,

“35-54”,

“55-74”,

                          "75+"))

按年代排序

data g e n e r a t i o n < − f a c t o r ( d a t a generation <- factor(data generation<factor(datageneration,

               ordered = T, 

               levels = c("G.I.

Generation",

                          "Silent",

“Boomers”,

                          "Generation

X",

“Millenials”,

                          "Generation

Z"))

data
<- as_tibble(data)

#计算这段时间内的全球自杀率:

global_average
<- (sum(as.numeric(data s u i c i d e s n o ) ) / s u m ( a s . n u m e r i c ( d a t a suicides_no)) / sum(as.numeric(data suicidesno))/sum(as.numeric(da

  • 16
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值