【发布时间】:2019-12-28 15:10:54
【问题描述】:
我正在尝试创建一个函数来对 R 中的 data.table 中的变量进行分组,这是我迄今为止的尝试:
fun_group = function(data,col_a,lower,upper,by){
data2 <- data.table(data)
data2[, .SD, .SDcols = c(col_a)]
#function to make categories:
fun_cat_var <- function(x, lower = 0, upper, by = 10,
sep = "-", above.char = "") {
x[x<lower] <- lower
labs <- c(paste(seq(lower, upper - by, by = by)),
paste(upper, above.char, sep = ""))
cut(floor(x), breaks = c(seq(lower, upper, by = by), Inf),
right = FALSE, labels = labs)
}
data2[, ("grp") := lapply(.SD, fun_cat_var), .SDcols = c(predictor,lower,upper,by)]
}
问题是我不确定语法是如何工作的,我应该把下部、上部和 by 参数放在哪里?这个函数给了我错误:
Error in `[.data.table`(data2, , `:=`(("grp"), lapply(.SD, fun_cat_var)), : Some items of .SDcols are not column names: [100, 200, 10]
,当我运行时
fun_group(mtcars,"hp")
【问题讨论】:
标签: r data.table grouping