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

我想要计算和绘制创业公司组和非创业公司组的年度平均值。换句话说,我想计算和绘制1998,1999,2000年初创公司的收入均值。以及1998,1999,2000,2001年的非初创公司的手段……
我该怎么做呢?
Ps。当我尝试单独计算每一列的平均值时,由于某种原因,结果以NaN形式出现,我不知道为什么。例如,当我运行代码mean(data$1998,na.rm = TRUE)时,结果是NaN。
发布于 2019-11-05 19:29:56
编辑:在没有实际查看数据的情况下,很难说出使用NaNs的原因。下面的答案是您原始问题的答案。
给出一个样本数据总是很好的,这样我们就可以重新创建。例如,我创建了一个虚拟数据,并展示了如何做到这一点。
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看起来与您的数据相似。
我要做的第一件事是将数据转换为长格式
library(tidyr)
final.dat_long <- tidyr::gather(final.dat, yearRef, revenue, `1998`:`2004`)现在按分类和yearRef分组,以获得每个分类和年份组合的平均值
summary <- final.dat_long %>% group_by(classification,
yearRef) %>%
summarise(meanRevenue = mean(revenue))对于绘图,有许多工具。我正在使用ggplot
library(ggplot2)
ggplot(summary, aes(x = yearRef, y = meanRevenue, fill
= classification)) +
geom_bar(position = 'dodge', stat = 'identity')

https://stackoverflow.com/questions/58710019
复制相似问题