我有以下问题。
从以下称为"R“的起始矩阵开始,我希望通过将两个变量连接在不同年龄的"Morti_per_abitante”和"PL_per_abitante“中,为每个”领土“(领土)导出一个线性模型。
为此,我创建了一个名为TT的空表,在该表中,对于每个领土,我将能够输入线性模型的值(斜率或"Tasso“和重要性或”重要意义“)。
此时,我创建了一个for循环,根据每13个“属地”中的一个来处理TT表,就可以获得包含其两个参数的模型:
for (i in 1:13){
Ter<-TT[i:1]
filter(R, Territorio==Ter) %>%
Tasso[1:2]<-lm(Morti_per_abitante ~ PL_per_abitante,R)$coefficents[2]
}
代码无法从插入的筛选器开始工作。
我能做些什么来纠正代码行呢?
是否有其他办法为每个领土建立线性模型?
谢谢
发布于 2022-03-22 03:47:40
下面是一种dplyr
+ broom
方法。我正在使用一个模拟的dataframe R
。
library(broom)
library(dplyr)
set.seed(123)
R <- data.frame(Territorio = rep(c("Lazio", "Puglia"), c(10, 5)),
Anno = sample(2015:2020, size = 15, replace = TRUE),
Morti_per_abitante = rnorm(15),
PL_per_abitante = rnorm(15))
R |>
group_by(Territorio) |>
group_modify(~{
tidy(lm(Morti_per_abitante ~ PL_per_abitante, data = .x))
}) |>
filter(term == "PL_per_abitante") |>
rename(Tasso = estimate, Significativita = p.value) |>
select(Territorio, Tasso, Significativita)
#> + # A tibble: 2 × 3
#> # Groups: Territorio [2]
#> Territorio Tasso Significativita
#> <chr> <dbl> <dbl>
#> 1 Lazio -0.339 0.367
#> 2 Puglia 0.239 0.592
https://stackoverflow.com/questions/71571325
复制