[英]R : Linear regressions (more than 1) on a single dataframe. Results as table
我的數據集類似於:
data <- tibble( "DATE_FIRE"= c("1989-07-31", "1989-07-31", "1989-07-31", "1989-07-31","1989-07-31","1989-08-31", "1989-08-31", "1989-08-31", "1989-08-31","1989-08-31"),
"FID" = c(1,1,1,1,1,2,2,2,2,2),
"Date" = c(1988, 1989, 1990, 1991, 1992, 1988, 1989, 1990, 1991, 1992),
"NDVI" = c( 0.9, 0.8, 0.1, 0.2, 0.3, 0.8, 0.85, 0.15, 0.30, 0.50))
data$DATE_FIRE <- as.Date(data$DATE_FIRE, format= "%Y-%m-%d")
data$FID <- as.factor(data$FID)
> data
# A tibble: 10 x 4
DATE_FIRE FID Date NDVI
<date> <fct> <dbl> <dbl>
1 1989-07-31 1 1988 0.9
2 1989-07-31 1 1989 0.8
3 1989-07-31 1 1990 0.1
4 1989-07-31 1 1991 0.2
5 1989-07-31 1 1992 0.3
6 1989-08-31 2 1988 0.8
7 1989-08-31 2 1989 0.85
8 1989-08-31 2 1990 0.15
9 1989-08-31 2 1991 0.3
10 1989-08-31 2 1992 0.5
它是關於森林火災及其通過 NDVI 值的恢復。 隨着森林恢復,NDVI 值上升。
DATE_FIRE
: 每個地塊發生火災的年份FID
: 每個地塊的 IDDate
: NDVI 的測量日期NDVI
: NDVI 值我想做的是執行 2 個線性回歸,一個用於FID=1
,另一個用於FID=2
,以比較它們的恢復率。 我有,不過,回收率申請只NDVI
對應的日期值火災(按確定后DATE_FIRE
)發生。 在 FID=1 的情況下,我應該只取第 3、4 和 5 行,因為第 1 行和第 2 行對應於火災前的測量值。
此外,我想將我的結果作為表格; 就像是:
> desired_output
# A tibble: 2 x 4
FID beta r2 p
<dbl> <dbl> <dbl> <dbl>
1 1 0.1 1 0
2 2 0.175 0.99 0.01
到目前為止我嘗試過的:
將DATE_FIRE
設置為與Date
相當的年份:
data$DATE_FIRE <- year(data$DATE_FIRE)
然后:
data_d <- data %>%
group_by(FID) %>%
filter(Date > DATE_FIRE) %>%
do(tidy(lm(NDVI ~ Date,data)))
分組類型有效,但過濾器無效。 歡迎任何幫助!
涉及dplyr
、 tidyr
、 lubridate
、 purrr
和broom
一種選擇可能是:
data %>%
group_by(DATE_FIRE, FID) %>%
filter(Date > year(DATE_FIRE)) %>%
nest() %>%
mutate(model = map(data, ~ tidy(lm(NDVI ~ Date, data = .))),
r2 = map_dbl(data, ~ summary(lm(NDVI ~ Date, data = .))$r.squared)) %>%
unnest(model)
DATE_FIRE FID data term estimate std.error statistic p.value r2
<date> <fct> <list<df[,2]>> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1989-07-31 1 [3 × 2] (Intercept) -199. 5.85e-11 -3.40e12 1.87e-13 1
2 1989-07-31 1 [3 × 2] Date 0.1 2.94e-14 3.41e12 1.87e-13 1
3 1989-08-31 2 [3 × 2] (Intercept) -348. 2.87e+ 1 -1.21e 1 5.24e- 2 0.993
4 1989-08-31 2 [3 × 2] Date 0.175 1.44e- 2 1.21e 1 5.24e- 2 0.993
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.