我有一个包含多个数据框的列表(称为 prep1)。每个数据框具有以下格式(仅显示前 6 行)
player1 player2 win1 win2
1 a12TTT.pdf a21.pdf 0 1
2 a12TTT.pdf B11.pdf 1 0
3 a12TTT.pdf B12.pdf 1 1
4 a12TTT.pdf B24.pdf 0 2
5 a12TTT.pdf B4.pdf 0 1
6 a12TTT.pdf B8.pdf 0 1
我想使用 BradleyTerry2 包中的函数 BTm 对数据建模。
对于单个数据框,函数是
BTm(cbind(win1,win2), player1, player2, data= your.data.frame.name)
我尝试做同样的事情,但在列表中的所有数据帧上一次使用 sapply 并传递来自 BTm 的所有参数而不是 ..... 在 sapply 参数中(文档说:... FUN 的可选参数).
sapply (prep1, BTm, cbind(win1, win2), player1, player2, data = prep1)
它让我出现以下错误 Error in FUN(X[[i]], ...) : object 'player2' not found
如果我使用 lapply
,我会遇到同样的错误。
我不知道如何正确传递所有参数。你能帮忙吗?
答案 0 :(得分:0)
为了清晰起见,使用匿名函数 -
sapply(prep1, function(x) BTm(cbind(win1,win2), player1, player2, data= x))
同样适用于 lapply
。
答案 1 :(得分:0)
我们可以使用map
library(purrr)
map(prep1, ~ BTm(cbind(win1, win2), player1, player, data = .x))