我有一個資料框,每年對多個州進行多次觀察。對一個州的最早觀察是在 1994 年,而對其中大多數州的最新觀察是在 2020 年。我的資料缺失,因為大多數觀察都不是從 1994 年到 2020 年。我現在想擴展我的資料框和插入缺失年份的行。其他列應該只填充 NA。資料框如下所示:
見表
到目前為止,我的方法是:
relative_FTE %>%
group_by(canton_id) %>%
mutate(Earliest.year = min(year)) %>%
select(-value, -year) %>%
distinct() %>%
expand(year = Earliest.year:1994, Earliest.year) %>%
select(-Earliest.year) %>%
left_join(relative_FTE, by = c("canton_id", "year"))
代碼運行,但是,我收到了警告訊息:
1:在 Earliest.year:1994 中:數值運算式有 14 個元素:僅使用第一個 2:在 Earliest.year:1994 中:數值運算式有 16 個元素:僅使用第一個
因此,該表僅保留每個州從 1994 年到第一次觀察年份的資料,而其余的將不再使用。有人可以幫助我找到解決方案,以便我對每個州從 1994 年到 2020 年進行觀察嗎?非常感謝您的幫助。
親切的問候
uj5u.com熱心網友回復:
我猜你想為每一對年份(從 1994 年到 2020 年)和 canton_id 設定行。我認為您可以full_df使用這些對創建,然后將其與您的 data.frame 合并。
full_df <- list(canton_id = unique(relative_FTE$canton_id), year = 1994:2020) %>% expand.grid()
merge(relative_FTE, full_df, all = T, by = c("year","canton_id"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/420930.html
標籤:
