0

我有一个包含多个数据框的列表(称为 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 并在 sapply 参数中从 BTm 而不是 ..... 传递所有参数(文档说:... FUN 的可选参数)。

sapply (prep1, BTm, cbind(win1, win2), player1, player2, data = prep1)

它让我得到以下错误Error in FUN(X[[i]], ...) : object 'player2' not found ,如果我使用lapply.

我不知道如何正确传递所有参数。你能帮忙吗?

4

2 回答 2

0

为了清楚起见,使用匿名函数 -

sapply(prep1, function(x) BTm(cbind(win1,win2), player1, player2, data= x))

同样也应该适用lapply

于 2021-06-02T11:25:16.827 回答
0

我们可以用map

library(purrr)
map(prep1, ~ BTm(cbind(win1, win2), player1, player, data = .x))
于 2021-06-02T17:20:47.553 回答