r语言 - 汇总命名向量报告的信息



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

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)

我们可以在'X' 的值为 'X' 的names上使用 group by 操作并获取频率

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)

或者来自base Raggregate

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

最新更新