R - 如何为缺少年份的数据制作堆积条形图

R - How to make stacked bargraph for data over years with missing years

这是我在 R 中的情节:

这是制作情节的代码:

years <- c(1980, 1984, 1984, 1986, 1988)
pubs  <- c("book","book","poem","poem","book")
mypubs <- data.frame(years,pubs)
counts <- table(mypubs$pubs,mypubs$years)
barplot(counts,main="pubs per year",xlab="year",col=c("darkblue","red"),legend=rownames(counts))

这是时间序列数据,没有1981年、1982年、1983年、1985年和1987年的数据。数据是我在任何给定时间是否读过一本书或一首诗。

有没有一种直接的方法来获取 mypubs 并为缺失的年份添加漏洞?我试过绘制直方图,但我无法弄清楚如何使它可靠地成为每年一个柱状图,而且我无法弄清楚如何使直方图进行堆叠颜色。

在您 运行 您的代码之前,请执行以下操作:

mydata$B <- factor(mydata$B, levels=1990:2015)

然后 运行 您的代码,您将看到 1990 年到 2015 年之间没有数据的年份计数为 0。如果您想要不同的年份范围,请修改代码。

从上面扩展 Greg 的回答,试试这个:

years <- c(1980, 1984, 1984, 1986, 1988)
pubs  <- c("book","book","poem","poem","book")
mypubs <- data.frame(years,pubs)

mypubs$years<-factor(mypubs$years, levels = as.character(1980:1990))

counts <- table(mypubs$pubs,mypubs$years)
barplot(counts,main="pubs per year",xlab="year",col=c("darkblue","red"),legend=rownames(counts))

"factor" 命令将年列转换为因子,而可选的 "levels" 将设置可用级别