为什么我使用tidyr的扩散函数获得NAs的“重复”行?

时间:2016-01-25 20:11:42

标签: r tidyr

我试图从具有以下结构的数据框出发:

Date    State    Price.Name    Cost.Name   Price    Cost
Jan       AZ    firm1.price   firm1.cost    100       50
Jan       AZ    firm2.price   firm2.cost    200      100

到一个看起来像这样的数据框:

Date    State    firm1.price    firm2.price    firm1.cost    firm2.cost
Jan        AZ            100            200            50          100

我尝试过使用tidyr的传播:

data=spread(data,Price.Name, Price)
data=spread(data,Cost.Name, Cost)

但这给了我以下数据框:

Date    State    firm1.price    firm2.price    firm1.cost    firm2.cost
Jan        AZ            100            NA            50            NA
Jan        AZ             NA           200            NA           100

我找到了另一个解决同一问题的线程:tidyr spread function generates sparse matrix when compact vector expected,但我无法确定是否达成了解决方案。在使用spread之前,有人建议使用虚拟变量进行分组,但我尝试过无效。

1 个答案:

答案 0 :(得分:1)

您可以单独执行价格和费用,然后合并(加入)它们(或for x in 1 3 5 6 4 2 8 ; do sleep $x & done ; wait [1] 3338 [2] 3339 [3] 3340 [4] 3341 [5] 3342 [6] 3343 [7] 3344 [1] Done sleep $x [2] Done sleep $x [6]- Done sleep $x [3] Done sleep $x [5]- Done sleep $x [4]- Done sleep $x [7]+ Done sleep $x 它们,具体取决于您的数据的具体情况):

cbind