0

Inserting the data frame

data.frame(stocknum = c(1,1,2,2), text = c(1,1,1,0), final = c(0,0,1,0))

How is it possible to calculate the sum of every column (text, final) group by every stocknum value?

Expected result:

data.frame(stocknum_uni = c(1,2), text_sum = c(2,1), final_sum = c(0,1))
rek
  • 177
  • 7

2 Answers2

2

Try this:

library(dplyr)
#Code
res <- df %>% group_by(stocknum) %>%
  summarise_all(sum)

Output:

# A tibble: 2 x 3
  stocknum  text final
     <dbl> <dbl> <dbl>
1        1     2     0
2        2     1     1

Some data used:

#Data
df <- data.frame(stocknum = c(1,1,2,2), text = c(1,1,1,0), final = c(0,0,1,0))
Duck
  • 39,058
  • 13
  • 42
  • 84
1

Using base R

aggregate(.~ stocknum, df, sum)

-output

#   stocknum text final
#1        1    2     0
#2        2    1     1

Or with dplyr using across from the newer version

library(dplyr)
df %>%
   group_by(stocknum) %>%
   summarise(across(where(is.numeric), sum), .groups = 'drop')

-output

# A tibble: 2 x 3
#  stocknum  text final
#     <dbl> <dbl> <dbl>
#1        1     2     0
#2        2     1     1

data

df <- data.frame(stocknum = c(1,1,2,2), text = c(1,1,1,0), final = c(0,0,1,0))
akrun
  • 874,273
  • 37
  • 540
  • 662