如何在数据帧上应用嵌套for循环

时间:2015-02-08 21:43:38

标签: r loops for-loop

我在R中有一个数据框,它有3个类别:Race,Horse,Predicted Rating。 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行,因此对于每场比赛都没有意义。此外,种族只是一个字符值,而不是包含马匹列表的对象。那么我如何获得与我的种族相对应的马匹?这是一个数据示例:

种族|马| PR

1 | 1 | 54

1 | 2 | 45

1 | 3 | 49

2 | 1 | 36

2 | 2 | 50

2 | 3 | 47

1 个答案:

答案 0 :(得分:0)

要回答有关如何实施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()