сумма каждой n-й строки и n-го столбца кадра данных - PullRequest
0 голосов
/ 10 июня 2019

У меня есть большой фрейм данных 3000 столбцов и 3000 строк, и мне нужно суммировать каждые 5 строк, а затем каждые 5 столбцов и преобразовывать мой фрейм данных в 600 строк и 600 столбцов: мои данные выглядят так

 matches1 matches2 matches3 matches4 matches5 ... 
    1        0        1        0        1            
    0        1        0        0        1            
    0        1        0        1        0
    1        0        1        0        1
    0        1        1        1        1

мои ожидаемые результаты таковы: мои данные для первых 5 строк и 5 столбцов такие:

  w1 ... w600
  14            

Ответы [ 2 ]

3 голосов
/ 10 июня 2019

Мы можем создать индекс для агрегирования строк и столбцов, используя gl(), а затем использовать aggregate и split.default для суммирования строк и столбцов соответственно.

index <- gl(nrow(df)/5, 5)

#Sum rows
df1 <- aggregate(.~index, df, sum)[-1]

#Sum columns
sapply(split.default(df1, index), rowSums)
0 голосов
/ 10 июня 2019

Мы можем создать индекс группировки с помощью %/%

index <- (seq_len(nrow(df)) - 1) %/% 5 + 1

Затем, используйте это в aggregate

aggregate(.~ index, df, sum)[-1]

Или в rowsum

rowsum(df, group = index)

Может также использоваться для суммирования столбцов

sapply(split.default(df, index), rowSums)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...