Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R代码将列透视到行,将行透视到列_R_Pivot_Tidyverse - Fatal编程技术网

R代码将列透视到行,将行透视到列

R代码将列透视到行,将行透视到列,r,pivot,tidyverse,R,Pivot,Tidyverse,我是RStudio的新手,我在这个问题上苦苦挣扎了两天,得出了我需要帮助的结论 我有一个如下所示的数据框: 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 2

我是RStudio的新手,我在这个问题上苦苦挣扎了两天,得出了我需要帮助的结论

我有一个如下所示的数据框:

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,以使用pivot函数,但我不确定如何继续。 问题是否来自我的数据帧应转换为矩阵的事实

非常感谢您的帮助

假设您的数据是

df%
pivot_更长(cols=as.character(2009:2011),名称_to=“Year”)%>%
枢轴(名称来自=“指示器”)
屈服

#一个tible:6 x 4
ISO年用电量人口
1 ARB 2009 0.5 NA
2 ARB 2010 0.5不适用
3 ARB 2011 0.4 NA
4 CSS 2009 NA 2.5
5 CSS 2010 NA 3.5
6 CSS 2011 NA 0.5

您可以尝试函数转置,通过执行t(数据帧)我考虑了转置,因为我看到了另一个类似的线程,但我认为ISO列有问题。非常感谢@Martin Gal,它工作得很好。你让我不再头疼了!