Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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 - Fatal编程技术网

R 分散成多个列

R 分散成多个列,r,R,我得到了一个data.frame,我想像dplyr的扩展函数一样扩展它,但是有多个变量 Code Product 2008 2008_Unit 2015 2015_Unit Type 010110 Pure-bred breeding horses and asses 1 Tons NA NA Exports_Peru_US 010110 Pure-bred breeding horses and asses 6 Tons NA NA E

我得到了一个data.frame,我想像dplyr的扩展函数一样扩展它,但是有多个变量

Code    Product 2008    2008_Unit   2015    2015_Unit   Type
010110  Pure-bred breeding horses and asses 1   Tons    NA  NA  Exports_Peru_US
010110  Pure-bred breeding horses and asses 6   Tons    NA  NA  Exports_Peru_World
010110  Pure-bred breeding horses and asses 55  Units   NA  NA  Exports_US_Peru
010110  Pure-bred breeding horses and asses 3899    Units   NA  NA  Exports_US_World
010110  Pure-bred breeding horses and asses 0   No quantity 6   Tons    Exports_World
010110  Pure-bred breeding horses and asses 31  Tons    NA  NA  Imports_Peru_US
我想把它变成:

Code    Product 2008_Exports_Peru_US    2008_Unit_Exports_Peru_US   2015_Exports_Peru_US    2015_Unit_Exports_Peru_US   2008_Exports_Peru_World ...
010110  Pure-bred breeding horses and asses 1   Tons    NA  NA  6   ...
因此,每个代码只显示在一行中

注意:并非所有代码都具有所有类型


重塑2+data.table有效

dcast(setDT(master), Code + Product ~ Type, value.var = c("2008","2008_Unit", "2015", "2015_Unit"))
master <- the data frame
dcast(setDT(master), Code + Product ~ Type, value.var = c("2008","2008_Unit", "2015", "2015_Unit"))

重塑2+data.table有效

dcast(setDT(master), Code + Product ~ Type, value.var = c("2008","2008_Unit", "2015", "2015_Unit"))
master <- the data frame
dcast(setDT(master), Code + Product ~ Type, value.var = c("2008","2008_Unit", "2015", "2015_Unit"))

master您是否从
dplyr
尝试了
spread
?我有@Aramis7d的可能重复,通过使用多个spread,我仍然会得到相同代码id的倍数。无法使用一个,因为spread只需要1个参数,我有4列需要分散。我也尝试过dcast,但没有成功(尽管可能是因为我对整形2软件包缺乏经验)。需要data.table和整形2才能正常工作。问题解决了。