1

data.frame の各行に合計関数を適用しようとしています。私の機能は次のとおりです。

fun <- function(a, b, t) sum((a+b)^(0:t))

次の data.frame を使用してコードをテストしています。

df <- data.frame(x = 1:3,
                 y = 1:3)

そして、私はそれが次のように機能することを望みます:

fun(df$x, df$y, 0, 3)

基本的に、私は自分の関数を通過させてofdfから合計を見つけたいと思っています。関数は単一の入力に対しては正常に機能しますが、関数の性質上、これは data.frames では機能しません。ループでこれを実行できることはわかっていますが、加算のベクトル化されたバージョンを保持したいと考えています (つまり、演算子を使用するのが好きです)。t=0 to t=3(df$x + df$y)^tsum():

4

1 に答える 1

2

これを使って:

fun2 <- function(a, b, t1, t2) rowSums(outer(a+b, t1:t2, `^`))

結果の比較:

> fun2(df$x, df$y, 0, 3)
[1]  15  85 259

> fun(df$x[1], df$y[1], 3)
[1] 15
> fun(df$x[2], df$y[2], 3)
[1] 85
> fun(df$x[3], df$y[3], 3)
[1] 259

t1また、関数宣言にはとの 2 つの入力が必要であることに注意してくださいt2

于 2013-06-26T02:00:45.140 に答える