将 2 参数函数传递给 combn

pass a 2-parameter function to combn

我正在使用内置数据集 "ChickWeight"。对于每个名称、体重、时间、小鸡、饮食,我的功能只是简单地计算每对名称、体重时间、体重小鸡、体重饮食、时间小鸡、时间饮食、小鸡饮食之间的差异。函数和计算本身都比较简单和不必要,但我想知道如何在组合中传递2参数函数。

我的脚本如下

out <- combn(names(ChickWeight), 2, simplify=FALSE)

f <- function(x, y)
{
diff <- (x - y)
}

mapply(f, out[1,], out[2,])

更新:看来我需要减去函数 f 中的数值,而不是名称。我想知道我该怎么做。也许我需要找到一种方法来引用 out[1,] 和 out[2,] 以便可以调用各个列中的数值。

I would like to find how I can pass the 2 parameter function in the combination.

好的,所以有两个问题。编程一个是通过

之类的东西解决的
combn(names(ChickWeight), 2, function(x) ChickWeight[[x[1]]] - ChickWeight[[x[2]]])

combn 总是采用单参数函数,令人困惑。


概念上的问题是:Chick 是序数数据,Diet 是分类数据。这些在减法等算术运算中都没有意义(这就是上面的代码给出警告和 NA 的原因)。