【发布时间】:2020-04-11 16:10:36
【问题描述】:
我有一个数据框,它有大约 50000 行,我想循环它,每个循环移动 10 行直到它到达 50000 行,这是代码。
for (i in 1:50000){
if(df[[1]][i,8] > 1){
hom <- hom + df[[1]][i,11]
}else{
het<-het + het[[1]][i,11]
}
score[i] = hom/(hom+het)
}
在代码中,我正在检查第 8 列中的条件是真还是假,以便应用适当的函数。 然后我得到分数。 所以我基本上想得到每行10行的分数{1-10,2-11,3-12,4-13........49990-50000}
如果你能帮忙,我会很高兴 谢谢
【问题讨论】:
-
看来你需要
library(zoo); rollsum(df[[1]], 10) -
能否请您展示一个可重现的小示例,因为此处的某些索引似乎不正确
df[[1]][i, 8],df[[1]]是一个向量,并且没有 dim 属性 -
@akrun,df 是一个列表,所以我选择了第一个子列表,即 df[[1]] 并且在子列表中,它有 11 列