【发布时间】:2021-03-25 16:11:53
【问题描述】:
我编写了一个运行线性模型并输出数据框的函数。我想在两个分组变量上多次运行该函数并堆叠输出。这是一个假设的数据集和函数:
data = data.frame(grade_level = rep(1:4, each = 3),
x = rnorm(12, mean = 21, sd = 7.5),
y = rnorm(12, mean = 20, sd = 7),
cut_set = rep(c("low", "med", "high"), each = 4))
func = function(grade, set){
model = lm(y ~ x, data=data[data$grade_level == grade & data$cut_set == set,])
fitted.values = model$fitted.values
final = data.frame(grade_level = data$grade_level[data$grade_level == grade & data$cut_set == set],
predicted_values = fitted.values)
final
}
我可以多次运行,然后绑定输出,但我知道这不是最好的
g1.low <- func(grade = 1, set = "low")
g1.med <- func(grade = 1, set = "med")
pred.values = rbind(g1.low, g1.med)
我想遍历所有等级(1 到 4)并设置(“低”、“中”、“高”)值。我试过这个循环,但它不起作用。我想知道是否有解决方案。
for (i in grades) {
for(c in 1:length(cut_sets)) {
temp <- func(grade = i, set = cut_sets[c])
predicted.values <- rbind(predicted.values, temp)
}
}
【问题讨论】:
标签: r function loops dplyr purrr