【问题标题】:Tidy a column in a data frame by using mean function [duplicate]使用均值函数整理数据框中的列
【发布时间】:2019-09-24 01:21:02
【问题描述】:

我有以下每年和每季度的失业数据,但在我的数据框中是截至 2018 年,但我将仅使用 2 年为例。

Year       Unemployement

1997Q3       1914 
1997Q4       1697 
1998Q1       1702 
1998Q2       1645 
1998Q3       1742 
1998Q4       1605

我可以使用什么代码来整理年份列并获得以下数据,主要是通过计算每年每个数据的平均值来获得失业人数:1997 年和 1998 年(+ 对于我拥有的其他年份在我的数据框中)。在最终版本中,我希望每年只有一个 Unemployment 数据,理论上应该是所有 Quater 的平均值

Year       Unemployement

1997         1805.50

1998         1673.50 

谢谢!

【问题讨论】:

  • 如果年份和季度信息合并做aggregate(Unemployement~substr(Year, 1, 4), df, mean) ?
  • @RonakShah ,我真的不明白如何计算每年的平均值并将结果相应地插入到 Unemployment 列中?
  • 你试过我上面的建议了吗?你得到什么输出ddi?如果它不起作用,我建议使用 dput(data) 更新您的帖子。

标签: r dataframe mean tidy


【解决方案1】:
##Data entry

library(tidyverse)

df<- tribble(
~Year,~Quarter,~Unemployement,
1997,"Q3",1914,
1997,"Q4",1697,
1998,"Q1",1702,
1998,"Q2",1645,
1998,"Q3",1742,
1998,"Q4",1605
)


##Solution

df%>%
group_by(Year)%>%
summarise(mean_year = mean(Unemployement))


# A tibble: 2 x 2
   Year mean_year
  <dbl>     <dbl>
1  1997     1806.
2  1998     1674.

## 2nd Version (first separate the Year-column)

df%>%
  separate(Year, c("Year", "Quarter"))%>%
  group_by(Year)%>%
  summarise(mean_year = mean(Unemployement))

【讨论】:

  • 非常感谢您提供的选项。但是,您能否提供如何使用我的数据框(而不是手动方式)通过插入年份和失业信息来创建 3 列(年份、季度和失业)?谢谢!!!
  • 您想将“Year”列分成两列(“Year”和“Quarter”)吗?
  • 是的,我想这样做,至于我以后使用你的解决方案会更容易,因为我的桌子很长:)
  • 很简单:你必须在这段代码的第二行插入separate(Year, c("Year", "Quarter"))%&gt;%
  • 我已经为您更新了答案中的代码。见:## 2nd Version
猜你喜欢
  • 1970-01-01
  • 2013-12-15
  • 2019-01-20
  • 1970-01-01
  • 2018-12-14
  • 2020-03-27
  • 2018-01-03
  • 2020-08-14
  • 1970-01-01
相关资源
最近更新 更多