如何为R中的函数创建包含行和列的数据框?

如何为R中的函数创建包含行和列的数据框?,r,function,loops,dataframe,replicate,R,Function,Loops,Dataframe,Replicate,我被分配了一个问题,要求我为一个函数创建一个数据框,但我不知道如何继续 为了评估停留和转换策略,我们必须重复多次游戏 根据每个策略确定获胜比例的时间。为此,, 编写另一个名为monty_hall()的函数,该函数有一个参数iter,即 迭代次数,返回包含iter行和五行的数据帧 柱。此函数应调用monty\u hall\u one\u play()函数。 您可能需要编写某种类型的循环或尝试replicate() 函数monty_hall()应返回的数据帧列为: 轿厢门,给出了隐藏轿厢的门 参赛

我被分配了一个问题,要求我为一个函数创建一个数据框,但我不知道如何继续

为了评估停留和转换策略,我们必须重复多次游戏 根据每个策略确定获胜比例的时间。为此,, 编写另一个名为
monty_hall()
的函数,该函数有一个参数
iter
,即 迭代次数,返回包含
iter
行和五行的数据帧 柱。此函数应调用
monty\u hall\u one\u play()
函数。 您可能需要编写某种类型的循环或尝试
replicate()

函数
monty_hall()
应返回的数据帧列为:

  • 轿厢门
    ,给出了隐藏轿厢的门

  • 参赛者门
    ,给出参赛者最初选择的门

  • host\u door
    ,提供主机显示的门

  • 切换
    ,切换策略的结果;1代表胜利,0代表失败

  • 入住
    ,入住策略的结果;1代表胜利,0代表失败

到目前为止,我的代码看起来像

monty_hall <- function(iter) {
  replicate(iter,monty_hall_one_play())
}
monty_hall(5)

monty\u hall
函数中的as.data.frame
colnames
应该足够了

monty_hall <- function(iter) {
   results <- replicate(iter, monty_hall_one_play())
   results <- as.data.frame(results)
   colnames(results) <- c(
      "car_door", "contestant_door", "host_door",
      "switch", "stay"
   )
   return(results)
} 
或者如果你想保持整洁的话

monty_hall <- function(iter) {
   replicate(iter, monty_hall_one_play()) %>%
      as.data.frame %>%
      set_names("car_door", "contestant_door", "host_door", "switch", "stay")
}
monty_hall%
as.data.frame%>%
设置名称(“轿门”、“选手门”、“主持人门”、“开关”、“停留”)
}

您如何解释您的
monty\u hall\u one\u play
功能的结果?如果我得到2,3,1意味着什么?我很抱歉,这些数字对应于分配的元素。第一个是隐藏在汽车后面的门,第二个是最初选择的门,第三个是主人打开的门。
> monty_hall(5)        
  car_door contestant_door host_door switch stay
1        1               3         2      3    1
2        2               2         2      3    2
3        3               1         1      2    3
monty_hall <- function(iter) {
   replicate(iter, monty_hall_one_play()) %>%
      as.data.frame %>%
      set_names("car_door", "contestant_door", "host_door", "switch", "stay")
}