鉴于此数据集:
  Name Height Weight
1 Mary     65    110
2 John     70    200
3 Jane     64    115
我想总结每个限定词列(高度和重量)
 199  425
问题是限定符可能不仅仅是2(即不仅仅是高度和重量).
我可以做这个.
    # Create the dataframe people
    Name <- c("Mary", "John", "Jane")
    Height <- c(65,70,64)
    Weight <- c(110,200,115)
    people <- data.frame(Name, Height, Weight)
    res <- c(sum(people$Height),sum(people$Weight))
但是当资格赛增加时,它会变得太长.什么是紧凑的方式来做到这一点?
Did*_*rts 64
您可以使用函数colSums()计算所有值的总和.  [,-1]确保排除包含人名的第一列.
 colSums(people[,-1])
Height Weight 
   199    425
假设可能有多个不是数字的列,或者您的列顺序未修复,则更通用的方法是:
colSums(Filter(is.numeric, people))
我们可以dplyr用来仅选择数字列并purr获取sum所有列。(可用于获取所有列的平均值,例如均值,最小值,最大值等。)
library("dplyr")
library("purrr")
people %>%
    select_if(is.numeric) %>%
    map_dbl(sum)
或仅使用另一种简单方法 dplyr
library("dplyr")
people %>%
    summarize_if(is.numeric, sum, na.rm=TRUE)
| 归档时间: | 
 | 
| 查看次数: | 76005 次 | 
| 最近记录: |