繁体   English   中英

使用循环按组进行线性回归

[英]Linear regression by group using loops

我有一个包含很多变量的数据集,我需要按国家进行线性回归。 我在这里有7个国家。 1个

现在,我想使用循环分别进行回归。 这是我的代码:

在此处输入图片说明

lmcountry(witd_hw$countryest,witd_hw$AverageIncome,witd_hw$sqincome)

虽然,似乎有一个错误:类型为'closure'的对象不可子集化

但实际上我可以像这样进行回归:

lm(witd_hw$countryest~witd_hw$AverageIncome+witd_hw$sqincome,data=witd_hw[witd_hw$Country=="China",])

不是通过for循环,而是通过list apply函数。 首先按国家将数据框划分为子框。 然后将lm应用于每个子集:

# Reproducible data example
df = data.frame(x = rnorm(100), y = rnorm(100), country = sample(c('A', 'B', 'C'), 100, replace=TRUE))

list_of_country_dfs = split(df, df$country)

results = lapply(list_of_country_dfs, function(dat) lm(y ~ x, data = dat))
lapply(results, summary)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM