我无法让这个循环运行。
loopLength <- length(vector_X)
i <- 1
for (x in 1:loopLength)
vector_Y <- Frame_X$column_a == vector_X[i]
Frame_Y <- Frame_X[Vector_Y,]
Frame_A <- Frame_Y$column_b == vector_X[i]
Frame_Z <- Frame_Y[Frame_A,]
Vector_T <- Frame_Y$column_c == Frame_Z[1,2]
Frame_Z2 <- Frame_Y[Vector_T,]
returnSum1[i] <- sum(Frame_Z2$column_d)
Frame_Z3 <- Frame_Y[!(Frame_Z1),]
returnSum2[i] <- sum(Frame_X3$column_d)`
我可以通过用一个整数替换i来运行stand_alone代码块(它只运行1到20)并交叉检查db并且结果是正确的。但是,我似乎无法迭代它。
我想我错过了一些关于集成循环的东西,但我看起来似乎无法找到它。
当我尝试将其作为for (i in 1:20)
运行时,它不起作用。
代码块周围的括号内的包含或排除也不起作用。
答案 0 :(得分:1)
您在for循环中定义的变量名为x
,而不是i
。如果不是这样,那么错误可能来自这样的事实:如果Frame_Z碰巧有0行,那么Frame_Z [1,2]就不存在了!我认为这一步骤并不十分明确。如果您发布了一个示例data.frame并说出您想要做的事情,我可以提供更多帮助。此外,如果您使用较少的步骤并且没有命名索引帧(如在Frame_A和Frame_Z1中),它将使您的代码更容易阅读。另外,我认为使用dplyr
会更容易。类似的东西:
library(dplyr)
loopLength <- length(vector_X)
for(i in 1:loopLength){
xval <- vector_X[i]
Frame_Z <- Frame_X %>%
filter(column_a == xval, column_b == xval)
...
}
我不能发布更多内容,因为我不太了解你想要做的事情。