【发布时间】:2015-08-02 06:38:06
【问题描述】:
我有一个 2 列 3659 行的数据框df
我试图通过平均此数据框中的每 10 或 13 行来减少数据集,因此我尝试了以下方法:
# number of rows per group
n=13
# number of groups
n_grp=nrow(df)/n
round(n_grp,0)
# row indices (one vector per group)
idx_grp <- split(seq(df), rep(seq(n_grp), each = n))
# calculate the col means for all groups
res <- lapply(idx_grp, function(i) {
# subset of the data frame
tmp <- dat[i]
# calculate row means
colMeans(tmp, na.rm = TRUE)
})
# transform list into a data frame
dat2 <- as.data.frame(res)
但是,我不能将行数除以 10 或 13,因为数据长度不是拆分变量的倍数。所以我不确定应该怎么做(我只想计算最后一组的平均值——即使元素少于 10 个)
这个我也试过了,结果是一样的:
df1=split(df, sample(rep(1:301, 10)))
【问题讨论】:
-
今天有人问了类似的问题。结合
split和cut。看看这是否有帮助stackoverflow.com/questions/30356275/r-divide-data-into-groups -
我无法按我想要的组数拆分的问题。因为我有奇数列,例如我想要 10 个组