我是RStudio的新手,我在这个问题上苦苦挣扎了2天,得出的结论是我需要帮助。
我有一个看起来像这样的数据框:
ISO Indicator 2009 2010 2011
ARB Use of electricity 0.5 0.5 0.4
CSS Population 2.5 3.5 0.5
我想做的就是
ISO Year Use of Electricity Population
ARB 2009 0.5 na
ARB 2010 0.5 na
ARB 2011 0.4 na
CSS 2009 na 2.5
CSS 2010 na 3.5
CSS 2011 na 0.5
我首先使用“聚集”功能创建Year列,然后将Year转换为数字并为值创建结果列。然后,我尝试“传播”,但数据框的类型却出现错误。 有没有办法一步一步地实现这一点,如果可以的话,我很乐意听到。 我考虑过在顶部添加一行并将其命名为Year以使用数据透视功能,但我不确定如何继续。 问题是否出在我的数据帧应转换为矩阵这一事实上?
非常感谢您的帮助!
答案 0 :(得分:0)
假设您的数据是
df <- read_table2("ISO Indicator 2009 2010 2011
ARB Use_of_electricity 0.5 0.5 0.4
CSS Population 2.5 3.5 0.5")
使用dplyr
/ tidyr
:
df %>%
pivot_longer(cols=as.character(2009:2011), names_to="Year") %>%
pivot_wider(names_from="Indicator")
收益
# A tibble: 6 x 4
ISO year Use_of_electricity Population
<chr> <chr> <dbl> <dbl>
1 ARB 2009 0.5 NA
2 ARB 2010 0.5 NA
3 ARB 2011 0.4 NA
4 CSS 2009 NA 2.5
5 CSS 2010 NA 3.5
6 CSS 2011 NA 0.5