首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Metagear effort_redistribute无法让它执行我想要的操作

Metagear effort_redistribute无法让它执行我想要的操作
EN

Stack Overflow用户
提问于 2017-02-02 08:49:03
回答 1查看 59关注 0票数 1

有人使用Metagear进行大型meta分析数据筛选吗?

我正在尝试将一个有2个审阅者的大型数据集的1%重新分发给新的修订者。可以很容易地重新分发50:50,尝试使用effort =,但字符串参数(是99,1,0)或(98,1,1)等不断出现错误。使用vignette代码和示例数据集进行测试,得到以下结果...

代码语言:javascript
复制
    # load package
    library(metagear)

    # load a bibliographic dataset with the authors, titles, and abstracts of multiple study references
    data(example_references_metagear)

    #initialise refs
    theRefs <- effort_initialize(example_references_metagear)

    # randomly distribute screening effort to a team, but with Luc handeling      80% of the work
    theTeam <- c("Christina", "Luc")
    theRefs_unscreened <- effort_distribute(theRefs, reviewers = theTeam,    effort = c(20, 80))

    #results in christina with 2 papers, luc with 9

    #give a small amount of work to new reviewer, patsy 
    theRefs_Patsy <- effort_redistribute(theRefs_unscreened,
                                 reviewer = "Luc",
                                 remove_effort = "20", # move 20% of Luc's work to Patsy
                                 reviewers = c("Luc", "Patsy")) # team members loosing and picking

    #results in christina with the same 2 papers, luc with 5 and patsy with 4
    #shouldn't end up with chris 2, luc with 8, patsy with 2? 
EN

回答 1

Stack Overflow用户

发布于 2018-02-27 12:10:02

运行上面给出的代码会出现以下错误

代码语言:javascript
复制
Error in remove_effort/(number_reviewers - 1) : 
  non-numeric argument to binary operator

因为effort_redistribute需要一个数值参数。删除百分比周围的引号"“将解决您在vignette代码和示例数据集方面遇到的问题。最终,Christina有2个,Patsy有2个,Luc有7个(总共11个)。

根据我对你的问题的理解,你似乎有一个很大的数据集已经分布在两个审阅者之间。最初,您将使用类似以下代码的代码分发数据集:

代码语言:javascript
复制
# load package
library(metagear)

# load a bibliographic dataset with the authors, titles, and abstracts of multiple study references
data(your_large_dataset)

#initialise refs
theRefs <- effort_initialize(your_large_dataset)

# randomly distribute screening effort to a team, with Reviewer1 and Reviewer2 equally sharing the work.
OriginalTeam <- c("Reviewer1", "Reviewer2")
theRefs_unscreened <- effort_distribute(theRefs, reviewers = OriginalTeam)

到目前为止,我们的裁判在Reviewer1和Reviewer2之间各占一半。

现在,如果你想使用effort_redistribute将1%的工作分配给一个新的评审者,你必须选择谁的工作是分布式的,Reviewer1还是Reviewer2。在本例中,我将从Reviewer1中删除。

代码语言:javascript
复制
theRefs_New <- effort_redistribute(theRefs_unscreened, 
                                 reviewer = "Reviewer1",
                                 remove_effort = 1, # move 1% of Reviewer1's work to new reviewer, Reviewer3
                                 reviewers = c("Reviewer1", "Reviewer3")) # team members loosing and picking up work

这样,您将分别使用Reviewer1、Reviewer2和Reviewer3完成49%、50%和1%的工作。或者,如果您想要从每个Reviewer1和Reviewer2中移除0.5%的工作量,以使Reviewer 3总共获得1%的工作量,您可以连续使用effort_redistribute两次,从每个原始评审中移出0.5%,并将其分配给新的评审。

当您使用effort_distribute时,完全不必重新分发,并从一开始就将工作分配为98:1:1 (或者您想要的其他方式)会更容易。请记住,为了使其工作,描述reviewers的向量和描述effort的向量的长度应该相同。

reviewers:将承担额外工作的每个团队成员的姓名的向量。

effort:用于在每个团队成员之间分配筛选任务的百分比向量。如果未显式调用,则假定在所有成员之间平均分配工作量。长度必须与团队成员的数量相同,并且总和必须为100。

代码语言:javascript
复制
Team_vector <- c("Reviewer1", "Reviewer2", "Reviewer3")
Effort_vector <- c(98, 1, 1)
theRefs_distributed <- effort_distribute(theRefs, reviewers = OriginalTeam, effort = Effort_vector)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41992517

复制
相关文章

相似问题

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