R:用于循环跳过具有动态记录选择的行

时间:2013-06-06 22:25:59

标签: r for-loop

我正在使用以下循环来运行迭代ODBC查询,该查询是从接近一百万条记录的更大列表中连续拍摄的50,000个唯一数字的块。 (背景:我需要来自ODBC源的数据,但是源太大而无法下载,我没有对数据库的写访问权限。我知道这是一个hacky解决方法,但我还没找到解决办法它 - 请耐心等待。)下面的“Key”是我将加入ODBC的字段。

    for (i in 0:n) 
    {
    batch <- data.frame(key[(50000*i)+1:50000*(i+1),])
    *(other stuff)*
    }

我希望这会迭代i给我动态记录范围。即对于i = 0,1:50000;对于i = 1,50001:100000。这适用于第一次迭代 - 其中i = 0 - 但是在i的较高值时,我注意到脚本实际上是跳过单个行,其中跳过的行数等于i。因此,在i = 10的情况下,它将从基础数据集的第500行开始,但第二和第三条记录将是基本集合的行500,010和500,020。

我确定这意味着R误读了我的一些剧本,但我找不到错误(/我没有经验足以让它跳出来。)

有什么想法?或者,如果有其他方法可以解决这个问题,我很乐意听到它们......

感谢阅读。

1 个答案:

答案 0 :(得分:1)

实际上,我认为误解了R.;)试试这个:

((i * 50000) + 1):((i+1) * 50000)

i范围从0到n