我正在嘗試使用dcast函數將數據從long變爲wide。將數據從長格式轉換爲寬格式 - 多個變量
目標是在value.var參數中使用不同的變量,但R不允許我在其中使用多個值。
有沒有其他方法可以修復它?我看過其他類似的問題,但我一直沒有找到類似的例子。
我送的細節
這裏是我當前的數據 數據集 - 世界
+---------+------+--------+--------------+------------+
| Country | Year | Growth | Unemployment | Population |
+---------+------+--------+--------------+------------+
| A | 2015 | 2 | 8.3 | 40 |
| B | 2015 | 3 | 9.2 | 32 |
| C | 2015 | 2.5 | 9.1 | 30 |
| D | 2015 | 1.5 | 6.1 | 27 |
| A | 2016 | 4 | 8.1 | 42 |
| B | 2016 | 3.5 | 9 | 32.5 |
| C | 2016 | 3.7 | 9 | 31 |
| D | 2016 | 3.1 | 5.3 | 29 |
| A | 2017 | 4.5 | 8.1 | 42.5 |
| B | 2017 | 4.4 | 8.4 | 33 |
| C | 2017 | 4.3 | 8.5 | 30 |
| D | 2017 | 4.2 | 5.2 | 30 |
+---------+------+--------+--------------+------------+
我的目標是今年列傳遞到列的其餘部分(增長,失業和人口) 。我正在使用下面的dcast功能。
data_wide <- dcast(world, country ~ year,
value.var=c("Growth","Unemployment","Population"))
理想的結果
+---------+-------------+-------------------+-----------------+-------------+-------------------+-----------------+
| Country | Growth_2015 | Unemployment_2015 | Population_2015 | Growth_2016 | Unemployment_2016 | Population_2016 |
+---------+-------------+-------------------+-----------------+-------------+-------------------+-----------------+
| A | 2 | 8.3 | 40 | 4 | 8.1 | 42 |
| B | 3 | 9.2 | 32 | 3.5 | 9 | 32.5 |
| C | 2.5 | 9.1 | 30 | 3.7 | 9 | 31 |
| D | 1.5 | 6.1 | 27 | 3.1 | 5.3 | 29 |
+---------+-------------+-------------------+-----------------+-------------+-------------------+-----------------+
請勿張貼僅適用於圖像。同時發佈'dput(X)'的輸出,其中X是您的輸入數據幀(如果該數據幀較大,則爲X的充分削減版本)。沒有人可以嘗試你的數據,而不用手工輸入,而且不能完全確定列的類。 –
我的第一個猜測是嘗試'重塑(世界,方向=「寬」,timevar =「年」,idvar =「國家」)' –
嗨@Juan。您實際上可以編輯您的問題,刪除您的圖像,然後複製粘貼值。另外,正如前面的評論所述,如果你添加了'dput(X)'的結果將會非常有用。這讓任何想要提供有效答案的人都更容易。謝謝! – lrnzcig