假设我有一个列表
MenuViewController
我需要计算所有这些向量,以便所需的输出看起来像:
test <- list(c(1, 2, 3), c(2, 4, 6), c(1, 5, 10), c(1, 2, 3), c(1, 5, 10), c(1, 2, 3))
R中有什么简单的方法可以实现这个目标吗?
答案 0 :(得分:3)
您可以粘贴并使用table
,即
as.data.frame(table(sapply(test, paste, collapse = ' ')))
给出,
Var1 Freq 1 1 2 3 3 2 1 5 10 2 3 2 4 6 1
答案 1 :(得分:1)
函数unique()
可以在列表上运行。对于计数,可以使用identical()
:
test <- list(c(1, 2, 3), c(2, 4, 6), c(1, 5, 10), c(1, 2, 3), c(1, 5, 10), c(1, 2, 3))
Lcount <- function(xx, L) sum(sapply(L, identical, y=xx))
sapply(unique(test), FUN=Lcount, L=test)
unique(test)
结果为data.frame:
result <- data.frame(
Set=sapply(unique(test), FUN=paste0, collapse=','),
count= sapply(unique(test), FUN=Lcount, L=test)
)
result
# > result
# Set count
# 1 1,2,3 3
# 2 2,4,6 1
# 3 1,5,10 2