我有一个包含 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
函数。看看这个链接是否有帮助:https://dev59.com/yYvda4cB1Zd3GeqPUhNo - Pierre L