Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.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 将data.table中的分组和除以,一步获得速率_R_Data.table - Fatal编程技术网

R 将data.table中的分组和除以,一步获得速率

R 将data.table中的分组和除以,一步获得速率,r,data.table,R,Data.table,我有一个data.table,看起来像这样: Fruit Date Count Apple 8/29/16 20548 Orange 8/29/16 14744 Banana 8/29/16 10605 Strawberry 8/29/16 8341 Watermelon 8/29/16 7768 Apple 8/30/16 9819 Orange 8/30/16 5858 Banana 8/30/16 362

我有一个data.table,看起来像这样:

Fruit       Date    Count
Apple       8/29/16 20548
Orange      8/29/16 14744
Banana      8/29/16 10605
Strawberry  8/29/16 8341
Watermelon  8/29/16 7768
Apple       8/30/16 9819
Orange      8/30/16 5858
Banana      8/30/16 3624
Strawberry  8/30/16 2595
Watermelon  8/30/16 2291
Apple       8/31/16 6662
Orange      8/31/16 6563
Banana      8/31/16 2073
Strawberry  8/31/16 1827
Watermelon  8/31/16 1738
如何通过水果和日期获得计数的总和,然后将总和除以,一步生成一个比率,例如香蕉/苹果?得到总数很容易注意:我也在过滤水果,一次只取两个:

d.table[Fruit %in% c('Apple', 'Banana'), .(Sum = sum(Count)), .(Fruit, Date)]
但我总是一步到位:

Date    Rate
8/29/16 0.52
8/30/16 0.37
8/31/16 0.31
我应该注意的是,我的实际data.table有额外的列,仅用于筛选,如果可能的话,我不想重塑我的数据/使用另一个包,因为此操作的结果将在筛选多个/更改条件后绘制,因此我希望使用易于重用的东西,即一行

提前感谢。

这应该可以:

d.table[Fruit %in% c('Apple', 'Banana'),
        .(Rate = sum(Count[Fruit == 'Banana']) / sum(Count[Fruit == 'Apple'])),
       .(Date)]
#       Date      Rate
# 1: 8/29/16 0.5161086
# 2: 8/30/16 0.3690804
# 3: 8/31/16 0.3111678
这应该起作用:

d.table[Fruit %in% c('Apple', 'Banana'),
        .(Rate = sum(Count[Fruit == 'Banana']) / sum(Count[Fruit == 'Apple'])),
       .(Date)]
#       Date      Rate
# 1: 8/29/16 0.5161086
# 2: 8/30/16 0.3690804
# 3: 8/31/16 0.3111678

这里是dcast的另一个选项


这里是dcast的另一个选项


@弗兰克,谢谢,我修好了。@弗兰克,谢谢,我修好了。