我能夠使用以下代碼生成變數lny_10 的平均移動:
p1 <- ggplot(df, aes(x = year, y = lny_10))
scale_x_continuous(breaks = c(1991, 1997, 2000, 2003, 2011), lim = c(1991, 2011)) theme_bw() stat_summary(geom = "line", fun.y = mean)

在同一平面上,我只想添加同一變數的另一條加權平均趨勢線,其中權重由每個行業的 lnl 總和確定,以便這條新趨勢線反映某個行業中 lnl 的權重(或者制造業或漁業)。換句話說,如果 manuf 中的總和。部門大于漁業部門,則制造業部門的lny_10平均值將被賦予更大的權重。
任何幫助,將不勝感激!
樣本資料如下:
structure(list(firmid = structure(c("016090", "002070", "009270",
"007700", "005800", "014990", "001460", "001460", "005800", "014990"
), format.stata = "%-6s"), year = structure(c(1992, 1992, 1992,
1992, 1992, 1992, 1992, 1993, 1993, 1993), format.stata = "%9.0g"),
lny_10 = structure(c(24.0853042602539, 24.2753143310547,
24.1893978118896, 22.7417297363281, 24.0077304840088, 24.0432777404785,
24.6088676452637, 24.6565208435059, 23.8993816375732, 24.2486095428467
), format.stata = "%9.0g"), lnl = structure(c(6.81234502792358,
7.56631088256836, 7.19368600845337, 5.48063898086548, 7.38398933410645,
6.63331842422485, 7.81439971923828, 7.72621250152588, 7.33040523529053,
6.74288082122803), format.stata = "%9.0g")), industry = structure(c("Manufacturing", "Manufacturing", "Manufacturing",
"Manufacturing", "Manufacturing","Fishery", "Fishery","Fishery","Fishery","Fishery"), label = "classification", format.stata = "%-51s")), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))
uj5u.com熱心網友回復:
按年份和行業分別計算權重,并在繪圖前將它們連接回原始資料框。
library(dplyr)
library(ggplot2)
dfweights <- df %>%
group_by(year, industry) %>%
summarise(lny_wmean = weighted.mean(lny_10,lnl))
df2 <- left_join(df, dfweights, by = c("year", "industry"))
df2 %>%
ggplot()
stat_summary(aes(x = year, y = lny_10), geom = "line", fun = mean, colour = "red")
theme_bw()
geom_line(aes(x = year , y = lny_10), colour = "blue")
geom_line(aes(x = year, y = lny_wmean), colour = "green")
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/407015.html
標籤:
上一篇:為什么Rsumvalues中的堆疊barplotggplot?
下一篇:置信區間箱線圖
