我有一个数据框,每列都是一个分类变量,还有一个名为target的列,其值为0或1。 我试图按列循环数据框,并按每列的不同级别计算平均目标。
n = c(2, 2, 1)
s = c(1, 0, 1)
b = c(TRUE, FALSE, TRUE)
target = c(1,0,0)
df = data.frame(n, s,b,target)
for(i in 1:a){
aggregate(df$target ~ as.name(colnames(df)[1]), df, mean)
}
在这里,我似乎无法在
中替换naggregate(df$target ~ n, df, mean)
带字符串。如何解决这类问题?非常感谢。
答案 0 :(得分:0)
非常感谢RomanLuštrik的评论。
代码是,
for(i in 1:a){
col_formula <- as.formula(sprintf("target ~ %s", colnames(df)[i]))
aggregate(col_formula, data=df, FUN=mean)
}
它给出了我正在寻找的结果。