这是我的数据 -
library(data.table) library(purrr)
basefile2 = data.table(States = c("California","California", "California", "Texas","Texas","Texas", "Ohio", "Ohio", "Ohio"),
district = c("district1", "district2", "district3", "district4", "district5", "district6", "district7","district8", "district9"),
Cities = c("LA", "California City", "San Fran", "Houston", "Dallas", "Austin", "Columbus", "Cleaveland", "Wooster"),
weather = c(30, 30, 38, 49, 23, 23, 40, 23, 23),
week = c("W1", "W2", "W3", "W4", "W1", "W2", "W3", "W4", "W1"),
days = c(20, 23, 23, 41, 23, 23,43, 43, 43),
NEW_Cities = c("LA", "California City", NA, NA, NA, NA, NA, NA, NA),
NEW_district = c(NA, NA, NA, "district4", "district5", NA, NA, NA, NA),
Zone = c("North", "South", "East", "West", "North", "South", "East", "West", "North"))
这是我的代码
create_summary <- function(field,group_byvars) {
Sales_Cat = basefile2[,.(Ratio = weather/days), keyby = c(group_byvars, field)]
Sales_Cat
}
step <- function(level, group_byvars = c("week", "Zone")){
out <- purrr::map_df(level,
~create_summary(field = .x,
groupby_vars = groupby_vars))
out <- data.table::rbindlist(out, use.names = TRUE, fill = TRUE)
head(out)
}
step(level = c("NEW_Cities", "NEW_district"),
group_byvars = c("week", "Zone"))
但我得到了以下错误信息
Error in create_summary(prdlevel = .x, groupby_vars = groupby_vars) :
unused argument (groupby_vars = groupby_vars)
我哪里做错了?虽然groupby_vars和level都对数据进行了分组,但我还是想把它们作为单独的输入。
问题还在于'group_byvars'和'groupby_vars'中的一些错别字,或者'field'与'field'中的错别字。
create_summary <- function(field,group_byvars) {
Sales_Cat = basefile2[,.(Ratio = weather/days), keyby = c(group_byvars, field)]
Sales_Cat
}
step <- function(level, group_byvars = c("week", "Zone")){
out <- purrr::map_dfr(level,
~create_summary(field = .x,
group_byvars = group_byvars))
#out <- data.table::rbindlist(out, use.names = TRUE, fill = TRUE)
head(out)
}
step(level = c("NEW_Cities", "NEW_district"),
group_byvars = c("week", "Zone"))