R plots:按年简单统计数据。基础包

R plots: simple statistics on data by year. Base package

如何使用 R 基本绘图系统和默认函数将简单的统计信息应用于数据并按年份优雅地绘制它们? 数据库比较重,最好不要生成新的变量。

我希望这不是一个愚蠢的问题,但我想知道这个问题,但没有找到不涉及其他包(如 ggplot2、dplyr、lubridate,例如我在网站上找到的包)的特定解决方案:

Split data by year

使用 R 默认系统是出于教学目的。我认为在打开更多 "comfortable" R 特定包之前,这可能是一次重要的培训。

考虑一个简单的数据集:

> prod_dat

lab      year        production(kg)

1        2010        0.3219
1        2011        0.3222
1        2012        0.3305
2        2010        0.3400
2        2011        0.3310
2        2012        0.3310
3        2010        0.3400
3        2011        0.3403
3        2012        0.3410

我想绘制直方图,比方说,特定年份 material 的总产量。

> hist(sum(prod_dat$production[prod_dat$year == c(2010, 2013)]))

不幸的是,这是我最好的尝试,但它抛出了一个错误:

in prod_dat$year == c(2010, 2012):
longer object length is not a multiple of shorter object length 

我实在是走投无路,有什么建议可以转用

没有ggplot我以前是这样做的,但我认为有更聪明的方法

all <- read.table(header = TRUE, stringsAsFactors = FALSE, text = "lab      year        production

                  1        2010        1
                  1        2011        0.3222
                  1        2012        0.3305
                  2        2010        0.3400
                  2        2011        0.3310
                  2        2012        0.3310
                  3        2010        0.3400
                  3        2011        0.3403
                  3        2012        0.3410")




ar <- data.frame(year = unique(all$year), prod = tapply(all$production, list(all$year), FUN = sum))
barplot(ar$prod)