计算列表中与r中相同元素的向量

时间:2018-11-16 19:52:11

标签: r list

我有约8000个向量的列表,我想知道这8000个向量中有多少个重复项,但是每个元素的顺序可能不同。

例如:

list <- c()
list[[1]] <- c(1,2,3) 
list[[2]] <- c(2,1,3)
list[[3]] <- c(3,2,1)
list[[4]] <- c(4,5)
list[[5]] <- c(5,4)
list[[6]] <- c(1,2,3,5)

应该给我计数c(1,2,3)为3,c(4,5)为2,c(1,2,3,5)为1

我想要每个重复项的数量,而不仅仅是重复的数量。

2 个答案:

答案 0 :(得分:1)

我们创建了一个函数,将vector作为参数('val'),然后使用list遍历sapply,检查all是否为'val { {1}}%in%arethe 'x', and向量`

the logical

答案 1 :(得分:1)

rsync -avzh --ignore-missing-args /path/to/source /path/to/destination

结果

library(tidyverse)
library(gtools)

get_perm <- function(v) {
  m <- permutations(n = length(v), r = length(v), v = v, set = F)
  m[order(c(m))]
}

all <- map(list, get_perm)

unique <- map(list, get_perm) %>% unique()

res_vec <- c()
element <- c()

for(i in seq_along(unique)) {
  element[[i]] <- unique[[i]] %>% unique() %>% paste(collapse = ",")
  res_vec[[i]] <- all %in% unique[i] %>% sum()
}

tibble(
  elements = unlist(element),
  numbers = res_vec
)

# A tibble: 3 x 2 elements numbers <chr> <int> 1 1,2,3 3 2 4,5 2 3 1,2,3,5 1 包含每个组中向量的所有单个元素,而elements是每个组中向量的数目。