Рассчитать среднее значение каждых 13 строк во фрейме данных
У меня есть фрейм данных с 2 столбцами и строкой 3659df
Я пытаюсь уменьшить набор данных, усредняя каждые 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)))