【问题标题】:How to apply a nested for loop on a dataframe如何在数据框上应用嵌套的 for 循环
【发布时间】:2015-02-08 21:43:38
【问题描述】:

我在 R 中有一个数据框,它有 3 个类别:种族、马匹、预测评分。 Pred 评级是线性回归模型的输出。我想使用类似下面的伪代码来对我的回归结果运行蒙特卡罗模拟:

for each race
    sim = matrix(NA, nrow = 100,000, ncol = length(horses))
    for each horse
        sim[, j] = monteCarlo(predicted value)
for each row in sim
    Results = which.max()

我认为我没有正确使用 which.max(),但我可以阅读并弄清楚那部分。我主要关心的是如何真正循环遍历我的数据。例如,如果一场比赛中有 8 匹马,那场比赛在我的数据框中将有 8 行,所以对于每场比赛并没有真正的意义。此外,比赛只是一个字符值,而不是包含马列表的对象。那么如何访问与我的种族相对应的马匹呢?这是一个数据示例:

种族 |马 |公关

1|1|54

1|2|45

1|3|49

2|1|36

2|2|50

2|3|47

【问题讨论】:

    标签: r loops for-loop


    【解决方案1】:

    要回答您关于如何实现for 循环的问题,这里有一种可能性

    races <- unique( myData$Race)
    horses <- unique(myData$Horse)
    
    for(race in races){
        sim = matrix(NA, nrow = 100,000, ncol = length(horses))
        for(horse in horses)
            sim[, j] = monteCarlo(predicted value)
    }
    for(i in seq(nrow(sim)))
        Results = which.max()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-27
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 2019-01-17
      相关资源
      最近更新 更多