2017-03-06 37 views
0

对于以下样本数据集功能之间:错误位置必须是0,且n在该过滤器和求和由日期范围

set.seed(123) 
library(dplyr) 
Sessions <- ceiling(rnorm(50, mean = 3000, sd = 300)) 
Registrations <- ceiling(rnorm(50, mean = 800, sd = 100)) 
Conversions <- ceiling(rnorm(50, mean = 400, sd = 50)) 
Date_Range = seq(Sys.Date() - 50, Sys.Date() - 1, by = 1) 
sample_data <- data.frame(Date_Range,Sessions, Registrations, Conversions) 
sample_data <- tbl_df(sample_data) 

我已经对于给定的度量,其是为了提供总和的以下函数日期范围:

sumByDates <- function(startDate, endDate, metric) { 
    sum(filter(sample_data, Date_Range >= startDate & Date_Range <= endDate) %>% select(metric)) 
} 

现在,如果我这样做:

sumByDates(Sys.Date()-5, Sys.Date()-1, Sessions) 

我会得到:

Error: Position must be between 0 and n 
Called from: combine_vars(vars, ind_list) 
Browse[1]> Q 

如何在给定Date_Rangesample_data中给定指标的总和?

回答

0

select(metric)更改为select_(metric),并在调用函数sumByDates(Sys.Date()-5, Sys.Date()-1, "Sessions")时将公制定义为字符串。

根据DPLYR中的“非标准评估”