想象一组三台机器(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
也是如此我确信这有一个简单的名字。
答案 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