Sum all values in every column of a data.frame in R

前端 未结 4 2109
暖寄归人
暖寄归人 2020-12-01 10:23

Given this data set:

  Name Height Weight
1 Mary     65    110
2 John     70    200
3 Jane     64    115

I\'d like to sum every qualifier c

相关标签:
4条回答
  • 2020-12-01 10:48

    You can use function colSums() to calculate sum of all values. [,-1] ensures that first column with names of people is excluded.

     colSums(people[,-1])
    Height Weight 
       199    425
    

    Assuming there could be multiple columns that are not numeric, or that your column order is not fixed, a more general approach would be:

    colSums(Filter(is.numeric, people))
    
    0 讨论(0)
  • 2020-12-01 11:00
    mapply(sum,people[,-1])
    
    Height Weight 
       199    425 
    
    0 讨论(0)
  • 2020-12-01 11:03

    We can use dplyr to select only numeric columns and purr to get sum for all columns. (can be used to get what ever value for all columns, such as mean, min, max, etc. )

    library("dplyr")
    library("purrr")
    
    people %>%
        select_if(is.numeric) %>%
        map_dbl(sum)
    

    Or another easy way by only using dplyr

    library("dplyr")
    people %>%
        summarize_if(is.numeric, sum, na.rm=TRUE)
    
    0 讨论(0)
  • 2020-12-01 11:03

    For the sake of completion:

     apply(people[,-1], 2, function(x) sum(x))
    #Height Weight 
    #   199    425 
    
    0 讨论(0)
提交回复
热议问题