从R数据框中选择一系列行

Kun*_*tra 3 r

我有一个1000行的数据框,我想一次对100行执行一些操作.所以,我试图找出如何在行数上使用计数器增量并一次选择100行,如1到100,然后101到200 ... uptil 1000并使用for执行每个子集的操作环.任何人都可以建议如何做到这一点,因为我找不到一个好的方法.

A5C*_*2T1 7

一种简单的方法是创建一个分组变量,然后使用split()lapply()执行您需要的任何操作.

您可以使用以下方式轻松创建分组rep().

这是一个例子:

set.seed(1)
demo = data.frame(A = sample(300, 50, replace=TRUE),
                  B = rnorm(50))
demo$groups = rep(1:5, each=10)
demo.split = split(demo, demo$groups)
lapply(demo.split, colMeans)
# $`1`
#           A           B      groups 
# 165.9000000  -0.1530186   1.0000000 
# 
# $`2`
#           A           B      groups 
# 168.2000000   0.1141589   2.0000000 
# 
# $`3`
#           A           B      groups 
# 126.0000000   0.1625241   3.0000000 
# 
# $`4`
#           A           B      groups 
# 159.4000000   0.3340555   4.0000000 
# 
# $`5`
#           A           B      groups 
# 181.8000000   0.0363812   5.0000000 
Run Code Online (Sandbox Code Playgroud)

如果您不想将组添加到源中data.frame,可以通过执行以下操作来实现相同的效果:

groups = rep(1:5, each=10)
lapply(split(demo, groups), colMeans)
Run Code Online (Sandbox Code Playgroud)

当然,替换colMeans你想要的任何功能.

使用data.frame1000行的示例,您的rep()语句应该类似于:

rep(1:10, each=100)
Run Code Online (Sandbox Code Playgroud)