所有数据帧全局环境中的 GLM
GLM in all data frames global environment
我有一个包含约 200 个唯一 'IDs' 的主数据框,并且每个 ID 都有约 200 个 'orders'。我使用
将主数据帧拆分为 200 个单独的数据帧
list2env(split(df, df$id), envir = .GlobalEnv)
现在,由于每个唯一 ID 有 200 个单独的数据帧,我想创建一个 GLM,我可以在其中获取打印在另一个主数据帧中的每个 ID 的系数和 R^2 值。
所以不要这样做(其中“1”到“200”都是 ID):
test1 <- glm(1$response_var ~ variableA + variableB + variableC, family=gaussian(), data=1)
并在为 200 个 ID 重复此操作时手动打印系数,是否有函数或特定循环可用于在单个数据框中打印所有系数和 R^2 值?
因此对于此示例,最终结果将是每个 ID 有 200 行,ID、截距、系数 1、系数 2、系数 3 和 R^2 有 6 列
试试这个例子:
#dummy data
set.seed(123)
df <- data.frame(
id=rep(c(1,2,3),10),
response_var=rep(c(1,2),15),
variableA=runif(30),
variableB=runif(30),
variableC=runif(30))
#split by id
df_list <- split(df,df$id)
#loop through every id
do.call(rbind,
lapply(df_list, function(x){
fit <- glm(response_var ~ variableA + variableB + variableC, family=gaussian(), data=x)
coef(fit)
}))
#output
# (Intercept) variableA variableB variableC
# 1 0.630746 1.4443321 -0.40875486 0.42797033
# 2 1.447003 0.7121737 -0.01226043 -0.93282962
# 3 1.450429 -0.2306031 0.47827197 -0.01190812
注意: glm 的 R2 是一个全新的世界,参见 Pseudo R squared formula for GLMs and Is R2 useful or dangerous?
我有一个包含约 200 个唯一 'IDs' 的主数据框,并且每个 ID 都有约 200 个 'orders'。我使用
将主数据帧拆分为 200 个单独的数据帧list2env(split(df, df$id), envir = .GlobalEnv)
现在,由于每个唯一 ID 有 200 个单独的数据帧,我想创建一个 GLM,我可以在其中获取打印在另一个主数据帧中的每个 ID 的系数和 R^2 值。
所以不要这样做(其中“1”到“200”都是 ID):
test1 <- glm(1$response_var ~ variableA + variableB + variableC, family=gaussian(), data=1)
并在为 200 个 ID 重复此操作时手动打印系数,是否有函数或特定循环可用于在单个数据框中打印所有系数和 R^2 值?
因此对于此示例,最终结果将是每个 ID 有 200 行,ID、截距、系数 1、系数 2、系数 3 和 R^2 有 6 列
试试这个例子:
#dummy data
set.seed(123)
df <- data.frame(
id=rep(c(1,2,3),10),
response_var=rep(c(1,2),15),
variableA=runif(30),
variableB=runif(30),
variableC=runif(30))
#split by id
df_list <- split(df,df$id)
#loop through every id
do.call(rbind,
lapply(df_list, function(x){
fit <- glm(response_var ~ variableA + variableB + variableC, family=gaussian(), data=x)
coef(fit)
}))
#output
# (Intercept) variableA variableB variableC
# 1 0.630746 1.4443321 -0.40875486 0.42797033
# 2 1.447003 0.7121737 -0.01226043 -0.93282962
# 3 1.450429 -0.2306031 0.47827197 -0.01190812
注意: glm 的 R2 是一个全新的世界,参见 Pseudo R squared formula for GLMs and Is R2 useful or dangerous?