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

潮间带生态系统中by的当量

  •  1
  • rnorouzian  · 技术社区  · 3 年前

    group_by %>% ... 所以它变得和我的 by(...) 命令?

    library(MASS)
    library(tidyverse)
    set.seed(0)
    
    dd <- data.frame(mvrnorm(40, 0:2, matrix(c(3,1,1,1,3,1,1,1,3),3,3)), k=rep(1:2, each=20))
    by(dd[-4], dd$k, function(i) det(cov(i)))
    
    #dd$k: 1
    #[1] 16.62934
    #--------------------------------------------------------------- 
    #dd$k: 2
    #[1] 3.849242
    
    # Equivalent of above in tidyverse:
    group_by(dd, k) %>% cov() %>% det()  # doesn't match above
    #[1] 2.43671
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Ronak Shah    3 年前

    group_by + summarise cur_data() 将数据传递给 cov 功能。

    library(dplyr)  
    library(MASS)
    
    dd %>%
      group_by(k) %>%
      summarise(res = det(cov(cur_data())))
    
    #      k   res
    #* <int> <dbl>
    #1     1 16.6 
    #2     2  3.85