1

なぜこれが機能しないのですか?それともRが機能する方法ですか?

ありがとうJJ

    a <- c(1,2,3)
    b <- 5
    lapply(a, function(x) print(x))  # works

    lapply(a, function(x,b) print(b)) # doesn't work.

    I get --
     Error in FUN(c(1, 2, 3)[[1L]], ...) : 
       argument "b" is missing, with no default
4

2 に答える 2

3

lapply1 つの引数のみが変化するように設計されているため、1 つの引数のみが渡されます。追加の引数を渡したいだけの場合は、それらを追加のオプションとして次のように配置しlapplyます。

lapply(a, function(x,y) print(y), y=b)
[1] 5
[1] 5
[1] 5
[[1]]
[1] 5

[[2]]
[1] 5

[[3]]
[1] 5

lapplyヘルプ ファイルから:

... FUN へのオプションの引数。

関数に複数の可変引数を渡したい場合は、 を参照してくださいmapply

于 2012-04-28T15:04:33.850 に答える
2

次のように a と b をリストにまとめてみてください。

lapply(list(a, b), function(x) print(b)) 

または、次のように b を渡す引数を指定します。

lapply(a, function(x, y=b) print(y))

しかし、私はあなたが何を求めているのかよくわかりません。

于 2012-04-28T14:52:39.293 に答える