Как добавить столбец с итогами строк в DPLYR, когда первая переменная не является числовой? - PullRequest
0 голосов
/ 24 апреля 2019

Мне нужно добавить столбец, который состоит из рассчитанных итоговых строк, где первая переменная не является числовой.

Данные:

 branch Pass_test_equity Fail_test_equity no_dependent_equity
  <fct>             <dbl>            <dbl>               <int>
1 branc1              230               47                 620
2 branc2             1460              201                1681
3 branc3              875              140                1533

Ожидаемый результат:

ranch Pass_test_equity Fail_test_equity no_dependent_equity Total
  <fct>             <dbl>            <dbl>               <int> <int> 
1 branc1              230               47                 620 897
2 branc2             1460              201                1681 3342
3 branc3              875              140                1533 2548

Ответы [ 2 ]

2 голосов
/ 24 апреля 2019

Вы также можете попробовать:

require(tidyverse)

df %>% 
  mutate(Sum = select_if(., is.numeric) %>%
           rowSums)

Как упоминалось @akrun, другой вариант - использовать reduce вместо rowSums:

df %>% 
      mutate(Sum = select_if(., is.numeric) %>%
      reduce("+"))

Результат:

  branch Pass_test_equity Fail_test_equity no_dependent_equity  Sum
1 branc1              230               47                 620  897
2 branc2             1460              201                1681 3342
3 branc3              875              140                1533 2548

Данные:

df <- read.table(text ="branch Pass_test_equity Fail_test_equity no_dependent_equity
                 branc1              230               47                 620
                 branc2             1460              201                1681
                 branc3              875              140                1533",
                 header = TRUE) 
0 голосов
/ 24 апреля 2019

Вы можете просто использовать apply:

df$Total <- apply(df[, -1], 1, sum)

Или используя dplyr:

library(dplyr)
df %>%
  mutate(Total = Pass_test_equity + Fail_test_equity + no_dependent_equity)

Замените df на ваш фрейм данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...