ho un frame di dati con 2 colonne e 3659 righe df
Calcolare la media di ogni 13 righe nella cornice dati
sto cercando di ridurre il set di dati dalla media ogni 10 o 13 righe in questo frame di dati, così ho provato la seguente:
# 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)
Tuttavia, non è possibile dividere il numero di righe da 10 o 13 perché la lunghezza dei dati non è un multiplo di variabile di distinzione. Quindi io non sono sicuro che cosa dovrebbe fare allora (voglio solo può essere quella di calcolare la media dell'ultimo gruppo -anche con meno di 10 elementi)
Ho provato anche questo, ma i risultati sono gli stessi:
df1=split(df, sample(rep(1:301, 10)))
Qualcuno ha fatto una domanda simile oggi. Combina 'split' e' cut'. Vedi se questo aiuta http://stackoverflow.com/questions/30356275/r-divide-data-into-groups –
il problema che non posso dividere per il numero di gruppi che voglio. perché ho un numero dispari di colonne e voglio avere 10 gruppi per esempio – user3617715