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

总结命名向量报告的信息

  •  0
  • Al14  · 技术社区  · 7 年前

    我想推断一个角色报告的信息,见下文:

    X<- c("BB", "BB", "CC", "CC", "CC", "EE", "EE")
    names(X) <- c(1, 2, 2, 2, 3, 3, 4)
    

    字符如下:

     X
           1    2    2    2    3    3    4 
        "BB" "BB" "CC" "CC" "CC" "EE" "EE" 
    

    "CC" 在位置2发生两次时,该信息应由行报告 Time 预期输出:

      1    2    2   3    3    4    # Position
      1    1    2   1    1    1    # Times
    "BB" "BB" "CC" "CC" "EE" "EE"  # Character
    

    尝试:

    table (names(X))
    data.frame(X)
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   akrun    7 年前

    我们可以在 names “X”的值,并获得频率

    library(data.table)
    data.table(X, nm = names(X))[, .N, .(X, nm)]
    #    X nm N
    #1: BB  1 1
    #2: BB  2 1
    #3: CC  2 2
    #4: CC  3 1
    #5: EE  3 1
    #6: EE  4 1
    

    或类似选项 tidyverse

    library(dplyr)
    data_frame(X, nm = names(X)) %>%
                count(X, nm)
    

    或与 aggregate 从…起 base R

    aggregate(cbind(n = rep(1, length(X))) ~ X + names(X), FUN = sum)