将函数应用于数据帧的越来越大的子集

时间:2015-04-23 14:18:32

标签: r function subset lapply

我想将统计函数应用于数据帧越来越大的子集,从第1行开始,每次递增10行。因此第一个子集是1-10行,第二个行是1-20,最后的子集是行1-nrows。这可以在没有for循环的情况下完成吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:3)

这是一个解决方案:

# some sample data
df <- data.frame(x = sample(1:105, 105))

#getting the endpoints of the sequences you wanted
row_seq <- c(seq(0,nrow(df), 10), nrow(df))

#getting the datasubsets filtering df from 1 to each endpoint  
data.subsets <- lapply(row_seq, function(x) df[1:x, ])

# applying the mean function to each data-set
#  just replace the function mean by whatever function you want to use
lapply(data.subsets, mean)