我有一个多个数据帧的列表(称为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 我想使用来自BTm包的函数BradleyTerry2对数据进行建模。
对于单个数据帧,函数是
BTm(cbind(win1,win2), player1, player2, data= your.data.frame.name) 我试着做同样的事情,但同时使用sapply和传递来自BTm的所有参数,而不是.在sapply参数中(文档中说:.可供选择的参数到乐趣)。
sapply (prep1, BTm, cbind(win1, win2), player1, player2, data = prep1)它会给我以下的错误Error in FUN(X[[i]], ...) : object 'player2' not found,如果我使用lapply,我会得到相同的错误。
我不知道如何正确地传递所有的论点。你能帮忙吗?
发布于 2021-06-02 11:25:16
为了清晰起见使用匿名函数-
sapply(prep1, function(x) BTm(cbind(win1,win2), player1, player2, data= x))同样的情况也应该适用于lapply。
发布于 2021-06-02 17:20:47
我们可以使用map
library(purrr)
map(prep1, ~ BTm(cbind(win1, win2), player1, player, data = .x))https://stackoverflow.com/questions/67804156
复制相似问题