代码之家  ›  专栏  ›  技术社区  ›  Wagner Jorge

由两个因子变量组成的子集[重复]

  •  0
  • Wagner Jorge  · 技术社区  · 6 年前

    考虑到两个因素之间的相互作用,我想汇总我的数据集( fac1 , fac2 )并为此应用函数。例如,考虑由

    set.seed(1)
    test <- data.frame(fac1 = sample(c("A", "B", "C"), 30, rep = T), 
                       fac2 = sample(c("a", "b"), 30, rep = T), 
                       value = runif(30))
    

    为了 fac1 == "A" "fac2 == a" 我们有五种价值观,我想用最小的来总结。我用野蛮的力量试着这样做

    min(test[test$fac1 == "A" & test$fac2 == "a", ]$value)
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   G5W    6 年前

    你提到 aggregate 这在这里也行。

    aggregate(test$value, test[,1:2], min)
      fac1 fac2          x
    1    A    a 0.32535215
    2    B    a 0.14330438
    3    C    a 0.33239467
    4    A    b 0.33907294
    5    B    b 0.08424691
    6    C    b 0.24548851
    
        2
  •  1
  •   Maurits Evers    6 年前

    这里是一个 tidyverse 可供替代的

    test %>% group_by(fac1, fac2) %>% summarise(x = min(value))
    ## A tibble: 6 x 3
    ## Groups:   fac1 [?]
    #  fac1  fac2       x
    #  <fct> <fct>  <dbl>
    #1 A     a     0.325
    #2 A     b     0.339
    #3 B     a     0.143
    #4 B     b     0.0842
    #5 C     a     0.332
    #6 C     b     0.245