Как я могу добавить строки в одну строку? - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть тиббл:

# A tibble: 10 x 2
   term                sumsq
   <chr>               <dbl>
 1 a1                 10.1  
 2 a2                 5.15 
 3 a3                 45.1  
 4 a4                 7.32 
 5 a1:a2              0.870
 6 a1:a3              14.1  
 7 a1:a4              12.0  
 8 a2:a4              0.211
 9 a2:a3              0.305
10 Residuals          4.88 

Как добавить строки 5-9, добавить их в новую строку и удалить исходные строки?

Требуемый вывод?

   term                sumsq
   <chr>               <dbl>
 1 a1                 10.1  
 2 a2                 5.15 
 3 a3                 45.1  
 4 a4                 7.32 
 5 Interactions       27.486
10 Residuals          4.88 

Примечание: 0.870+14.1+12.0+0.211+0.305=27.486

Пробный

df %>% 
 slice(., 5:9)

1 Ответ

0 голосов
/ 08 декабря 2018

Мы можем разделить данные на две части строки 5 и 9 и все остальные.Мы берем sum второй части и добавляем его к первой части.

library(dplyr)

df %>%
   slice(-(5:9)) %>%
    bind_rows(df %>%
               slice(5:9) %>%
                summarise(term = "Interaction",
                          sumsq = sum(sumsq)))

#         term  sumsq
#1          a1 10.100
#2          a2  5.150
#3          a3 45.100
#4          a4  7.320
#5   Residuals  4.880
#6 Interaction 27.486

Аналогично в базе R

rbind(df[-c(5:9), ], data.frame(term = "Interaction", sumsq = sum(df$sumsq[5:9])))
...