сколько статистики по элементам n-й строки для каждого столбца n-го числа во фрейме данных - PullRequest
0 голосов
/ 04 мая 2019

Мне нужно, чтобы каждые 7 элементов в строке соответствовали сумме первого столбца;для суммы второго столбца, для третьего столбца min, для четвертого столбца max и собрали процесс от 3-го до 48-го столбца фрейма данных, названного здесь набором данных, который на самом деле имеет 50 столбцов и 84 строки.Ожидается, что я получу фрейм данных с 12 строками и 48 столбцами, в котором каждый элемент строки представляет собой статистику (в следующем повторяющемся порядке по столбцам: сумма, сумма, мин. Макс.) По 7 элементам в каждой из 84 строк.Я думаю, что, возможно, проблема может быть в цикле for для строк I, может быть?

k=data.frame(matrix(nrow = 12,ncol = 48));
  for (i in 1:12) {
     for (j in 1:12) {
         k[i,4*j-3]=apply(dataset[ i:7,4*j-1], 2,sum)
         k[i,4*j-2]=apply(dataset[ i:(i+7),4*j], 2,sum)
         k[i,4*j-1]=apply(dataset[ i:(i+7),4*j+1], 2,min)
         k[i,4*j]=apply(dataset[ i:(i+7),4*j+2], 2,max)
      }
  };

1 Ответ

0 голосов
/ 04 мая 2019

как то так?

stats <- NULL
for (i in 1:ncol(data)) {
    if (any(seq(1, ncol(data), by = 7) == i))) {
        stats[i] <- sum(data[,i])
    } else {
        if (any(seq(2, ncol(data), by = 7) == i))) {
            stats[i] <- sum(data[,i])
        } else {
            if (any(seq(3, ncol(data), by = 7) == i))) {
                stats[i] <- min(data[,i])
            } else {
            stats[i] <- max(data[,i])
            }
        }

    }
}
...