如何创建一个计算和检索表中值的函数?

时间:2017-02-08 18:13:32

标签: r function

我有一张表格,上面有关于司机违规和违规价值的信息。我有两列Value(违规)和年(违规)。对于违规的每一年,我有几个值。年份从2000年到2014年。

我需要一个可以检索每个“预定”年份的违规总数的函数。即,当用户键入年份时,仅获取该年份的信息。到目前为止,我只能设法同时获取所有年份的信息

我试过了:

total_year <- function(x=infractions$year){
  aggregate(infractions$value ~ infractions$year_deb, FUN=sum, na.rm = TRUE)
}

然后我输入

total_year(2012)

我每年都会收到一份违规表,但我只想要2012年的总数。

我的表格如下:

       value year 
375714  1,00 2011 
375715  0,00 2012 
375716  0,00 2013 
375717  0,00 2014 
375738 12,00 2011 
375739  7,00 2012 
375740  2,00 2013 
375741  4,00 2014 
375762 23,00 2011 
375763 14,00 2012 
375764 18,00 2013 
375765  7,00 2014 
375786  6,00 2011 
375787  4,00 2012 
375788  2,00 2013 
375789  5,00 2014 
375810  0,00 2011 
375811  0,00 2012 
375812  0,00 2013

1 个答案:

答案 0 :(得分:0)

这是使用dplyr

的另一种解决方案

数据

set.seed(123)

df <- data.frame(value = sample(c("speeding", "parking", "dui"), 45, replace = T),
                 year = rep(2000:2014, 3))

<强>功能

library(dplyr)

total_year <- function(data, x) {
  data %>%
    filter(year == x) %>%
    group_by(year) %>%
    summarize(inf = length(unique(value))) %>%
    ungroup
}

<强>用法

total_year(df, 2014)
#     year   inf
#     <int> <int>
#   1  2014     1