首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据另一列的信息绘制大型数据集的年平均值?

如何根据另一列的信息绘制大型数据集的年平均值?
EN

Stack Overflow用户
提问于 2019-11-05 19:05:02
回答 1查看 36关注 0票数 0

我有一个包含数百万家企业的数据集,它们被归类为初创企业或非初创企业,以及它们的年收入。

数据如下所示:

我想要计算和绘制创业公司组和非创业公司组的年度平均值。换句话说,我想计算和绘制1998,1999,2000年初创公司的收入均值。以及1998,1999,2000,2001年的非初创公司的手段……

我该怎么做呢?

Ps。当我尝试单独计算每一列的平均值时,由于某种原因,结果以NaN形式出现,我不知道为什么。例如,当我运行代码mean(data$1998,na.rm = TRUE)时,结果是NaN。

EN

回答 1

Stack Overflow用户

发布于 2019-11-05 19:29:56

编辑:在没有实际查看数据的情况下,很难说出使用NaNs的原因。下面的答案是您原始问题的答案。

给出一个样本数据总是很好的,这样我们就可以重新创建。例如,我创建了一个虚拟数据,并展示了如何做到这一点。

代码语言:javascript
复制
IDs <- 
data.frame(enterprise = letters,
       classification = sample(c('STARTUP','NOT STARTUP'), length(letters), replace = TRUE))

dat <-
as.data.frame(matrix(sample(200:600, length(letters) * 7), nrow = length(letters), ncol = 7))
names(dat) <- 1998:2004

final.dat <- as.data.frame(cbind(IDs, dat))

final.dat看起来与您的数据相似。

我要做的第一件事是将数据转换为长格式

代码语言:javascript
复制
  library(tidyr)

  final.dat_long <- tidyr::gather(final.dat, yearRef, revenue, `1998`:`2004`)

现在按分类和yearRef分组,以获得每个分类和年份组合的平均值

代码语言:javascript
复制
summary <- final.dat_long %>% group_by(classification, 
 yearRef) %>% 
 summarise(meanRevenue = mean(revenue))

对于绘图,有许多工具。我正在使用ggplot

代码语言:javascript
复制
 library(ggplot2)

  ggplot(summary, aes(x = yearRef, y = meanRevenue, fill 
  = classification)) +
  geom_bar(position = 'dodge', stat = 'identity')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58710019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档