数量桶(总行数,又名表格)

时间:2016-05-29 23:05:39

标签: r

想象一组三台机器(a,b,c)在一系列测试中捕获数据。我需要计算每个测试中每个可能的结果有多少。

使用此测试数据和样本输出,您将如何解决它(假设测试结果可能是数字或alpha)。

Compiling C\TC\BIN\Driver.C:
Error C\TC\BIN\DEMO_F1.C 1: Variable 'x' is initialized more than once
Error C\TC\BIN\DEMO_F1.C 1: Variable 'x' is initialized more than once

sumry的输出显示每个可能结果/值的列(以V为前缀,如'测量值')。注意:sumry输出表明有可能值为4,但在此处的任何测试数据中都没有观察到,因此总是为零。

tests <- data.table(
  a = c(1,2,2,3,0),
  b = c(1,2,3,0,3),
  c = c(2,2,3,0,2)
)

sumry <- data.table(
  V0 = c(0,0,0,2,1),
  V1 = c(2,0,0,0,0),
  V2 = c(1,3,1,0,1),
  V3 = c(0,0,2,1,1),
  v4 = c(0,0,0,0,0)
)

tests
sumry

来自sumry的V0列表示从测试#1中的任何机器观察到零值的次数。对于这组测试数据,仅在第4和第5次测试中观察到零。对于V1-V4

也是如此

我确信这有一个简单的名字。

1 个答案:

答案 0 :(得分:2)

这是围绕tabulate()构建的一个解决方案:

res <- suppressWarnings(do.call(rbind,apply(tests+1L,1L,tabulate)));
colnames(res) <- paste0('V',seq(0L,len=ncol(res)));
res;
##      V0 V1 V2 V3
## [1,]  0  2  1  0
## [2,]  0  0  3  0
## [3,]  0  0  1  2
## [4,]  2  0  0  1
## [5,]  1  0  1  1