代码之家  ›  专栏  ›  技术社区  ›  Jellyfish

对数值列求和,并报告位于指定范围内的列和的索引

  •  0
  • Jellyfish  · 技术社区  · 5 年前

    我想在R完成以下任务。

    (1) 对数值列求和

    (2) 给定两个数字,告诉我列数和/或列和在该范围内的列的名称(包括在内)

    例子 :

    dat=data.frame(matrix(1:100, nrow=10), matrix(LETTERS[1:10], nrow=10))
    apply(dat, 2, sum)
    sum(dat[,7])
    sum(dat[,9])
    
    1 回复  |  直到 5 年前
        1
  •  3
  •   Ronak Shah    5 年前

    colSums 得到他们的总数。

    cols <- sapply(dat, is.numeric)
    column_sum <- colSums(dat[cols])
    column_sum
    
    # X1  X2  X3  X4  X5  X6  X7  X8  X9 X10 
    # 55 155 255 355 455 555 655 755 855 955 
    

    要找出范围内的值,可以执行以下操作:

    column_sum[column_sum >= 655 & column_sum <= 855]
    # X7  X8  X9 
    #655 755 855 
    
    #to get only the names
    names(column_sum[column_sum >= 655 & column_sum <= 855])
    #[1] "X7" "X8" "X9"
    

    使用 dplyr

    library(dplyr)
    dat %>%
      summarise(across(where(is.numeric), sum)) %>%
      select(where(~between(., 655, 855)))