我有一个小data.table
代表每个测试单元格的一条记录(AB 测试结果),并且我想添加更多的列来将每个测试单元格与其他测试单元格进行比较。换句话说,我想要添加的列数将取决于相关 AB 测试中有多少个测试单元。
My data.table
好像:
Group Delta SD.diff
Control 0 0
Cell1 0.00200 0.001096139
Cell2 0.00196 0.001095797
Cell3 0.00210 0.001096992
Cell4 0.00160 0.001092716
我想添加以下列(这里的数字是垃圾):
Group v.Cell1 v.Cell2 v.Cell3 v.Cell4
Control 0.45 0.41 0.45 0.41
Cell1 0.50 0.58 0.48 0.66
Cell2 0.58 0.50 0.58 0.48
Cell3 0.48 0.58 0.50 0.70
Cell4 0.66 0.48 0.70 0.50
我确定do.call
这是可行的方法,但我无法弄清楚如何将一个 do.call 嵌入到另一个 do.call 中以生成脚本...并且我无法弄清楚如何执行脚本(总共 20 行)。我目前最接近的是:
a <- do.call("paste",c("test.1.results <- mutate(test.1.results, P.Better.",list(unlist(test.1.results[,Group]))," = pnorm(Delta, test.1.results['",list(unlist(test.1.results[,Group])),"'][,Delta], SD.diff,lower.tail=TRUE))", sep=""))
生成 5 行脚本,例如:
test.1.results <- mutate(test.1.results, P.Better.Cell2 = pnorm(Delta, test.1.results['Cell2'][,Delta], SD.diff,lower.tail=TRUE))
它仅将一个测试单元的结果与自身进行比较.. 0.50 结果(由于偶然而产生的差异)。没有任何用处,因为我需要将每个测试进行相互比较。
不知道该去哪里。