最初の列にls、2番目の列にheihtsの重みを持つ次の行列があるとします。
> wgt.hgt.matrix
[,1] [,2]
[1,] 180 70
[2,] 156 67
[3,] 128 64
[4,] 118 66
[5,] 202 72
私はこれを次のようなバイナリ関数を適用するための簡潔な方法を探しています
function(lb, inch) { (lb/inch**2)*703 } -> bmi
行列の各行に、結果として5つのBMI値を持つ配列、リスト、またはベクトルが生成されます。私が見つけた1つの方法は、apply
関数を使用します。
apply(wgt.hgt.matrix, 1, function(row) bmi(row[1], row[2]))
ただし、Ruby(*)のようなsplat演算子を使用すると、呼び出しをより簡潔かつ明確にすることができます。
apply(wgt.hgt.matrix, 1, function(row) bmi(*row))
splat演算子に相当するものが存在しますか?つまり、引数リストに入力するためにすべてのベクトルのようなオブジェクトを分割するようにRに指示する構文要素がありますか?他に、より単純で簡潔なapply
電話の提案はありますか?