0
我有一些來自列表中多個同齡組的人口信息。每個隊列涵蓋重疊的時間段。數據如下所示:將重疊data.frames的列表轉換爲單個數據。框架
> raw.data
$`1`
Year Pop
1 1920 1927433
2 1921 1914551
3 1922 1900776
$`2`
Year Pop
1 1921 1915576
2 1922 1902075
3 1923 1887613
$`3`
Year Pop
1 1922 1902111
2 1923 1887862
3 1924 1872695
我想將它轉化成一個單一的數據幀中的列名是年,對角線的人口數據。輸出應該如下所示:
> resulting.data
1920 1921 1922 1923 1924
1 1927433 1915576 1902111 NA NA
2 NA 1914551 1902075 1887862 NA
3 NA NA 1900776 1887613 1872695
你可以找到輸入示例數據及以下所需的輸出:
raw.data <- structure(list(`1` = structure(list(Year = 1920:1922, Pop = c(1927433L, 1914551L, 1900776L)), .Names = c("Year", "Pop"), row.names = c(NA, 3L), class = "data.frame"), `2` = structure(list(Year = 1921:1923, Pop = c(1915576L, 1902075L, 1887613L)), .Names = c("Year", "Pop"), row.names = c(NA, 3L), class = "data.frame"), `3` = structure(list(Year = 1922:1924, Pop = c(1902111L, 1887862L, 1872695L)), .Names = c("Year", "Pop"), row.names = c(NA, 3L), class = "data.frame")), .Names = c("1", "2", "3"))
resulting.data <- structure(list(X1920 = c(1927433, NA, NA), X1921 = c(1915576, 1914551, NA), X1922 = c(1902111, 1902075, 1900776), X1923 = c(NA, 1887862, 1887613), X1924 = c(NA, NA, 1872695)), .Names = c("X1920", "X1921", "X1922", "X1923", "X1924"), row.names = c(NA, -3L), class = "data.frame")
我已經看過this link它提供了一個類似的問題,但我沒有成功使其適應我的需求。我也試圖用plyr先試圖獲得對角線,然後再合併它們,但是我不確定如何進行組合。
注意,從我的輸出產生的數據實際上有那些人口向量作爲對角線,還不如臥式矢量。 – ruser45381
我不明白你的意思。 – Andrie
您的輸出與我的不匹配。 – ruser45381