首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对具有多个参数的函数使用sapply

对具有多个参数的函数使用sapply
EN

Stack Overflow用户
提问于 2021-06-02 11:22:25
回答 2查看 69关注 0票数 0

我有一个多个数据帧的列表(称为prep1)。每个数据帧都有以下格式(仅显示前6行)

代码语言:javascript
复制
 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对数据进行建模。

对于单个数据帧,函数是

代码语言:javascript
复制
BTm(cbind(win1,win2), player1, player2, data= your.data.frame.name) 

我试着做同样的事情,但同时使用sapply和传递来自BTm的所有参数,而不是.在sapply参数中(文档中说:.可供选择的参数到乐趣)。

代码语言:javascript
复制
sapply (prep1, BTm, cbind(win1, win2), player1, player2, data = prep1)

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

我不知道如何正确地传递所有的论点。你能帮忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-02 11:25:16

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

代码语言:javascript
复制
sapply(prep1, function(x) BTm(cbind(win1,win2), player1, player2, data= x))

同样的情况也应该适用于lapply

票数 0
EN

Stack Overflow用户

发布于 2021-06-02 17:20:47

我们可以使用map

代码语言:javascript
复制
library(purrr)
map(prep1, ~ BTm(cbind(win1, win2), player1, player, data = .x))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67804156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档