折叠矩阵以将一列中的值与另一列中的值相加

mEv*_*ans 3 r matrix

我有一个包含三列的矩阵:县,日期和ED访问次数.每个县的日期重复,像这样(只是一个例子):

  County A  1/1/2012  2
  County A  1/2/2012  0
  County A  1/3/2012  5
  ... etc.
  County B  1/1/2012  3
  County B  1/2/2012  4
  ... etc.
Run Code Online (Sandbox Code Playgroud)

我想折叠这个矩阵来总结每个县的每个日期的访问量.所以它看起来像这样:

1/1/2012  5
1/2/2012  4
etc.
Run Code Online (Sandbox Code Playgroud)

我试图"table()"在R中使用该功能,但似乎无法通过这种方式按日期访问操作.当我这样做时"table(dt$date, dt$Visits)",给我一个频率表,如下所示:

             0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  2011-01-01 3 1 2 0 1 1 0 2 0 0  0  0  0  0  0  0
  2011-01-02 2 3 1 0 0 1 0 0 1 0  2  0  0  0  0  0
  2011-01-03 3 1 1 2 1 0 0 0 0 1  0  0  0  0  1  0
Run Code Online (Sandbox Code Playgroud)

有什么建议?有没有更好的功能使用,也许是某种"总和"?

谢谢!

42-*_*42- 5

table()不是用于值的总和,而是用于记录计数.如果你想使用tapply你得到一个表输出并可以应用该sum功能.或者您可以使用ave获取与数据帧相等长度的和向量.也许:

  with( EDcounts, tapply(EDcounts[[3]], EDcounts[[2]], sum, na.rm=TRUE) )
Run Code Online (Sandbox Code Playgroud)

xtabs如果您将"访问"列名称放在公式的LHS上,您也可以哄骗访问计数的总和.