2013-03-12 26 views
3

假設我有以下列表:如何獲得項目的頻率列表中的兩種不同長度

test<-list(c("a","b","c"),c("a"),c("c")) 
>test 
[[1]] 
[1] "a" "b" "c" 

[[2]] 
[1] "a" 

[[3]] 
[1] "c" 

,該怎麼辦(或功能使用),以獲得一個獨特的項目出現的頻率像這樣的列表:?

a 2 
b 1 
c 2 

我試着用表(測試),但我得到以下錯誤

> table(test) 
Error in table(test) : all arguments must have the same length 

回答

7
test <- list(c("a", "b", "c"), c("a"), c("c")) 
# If you want count accross all elements 
table(unlist(test)) 
## 
## a b c 
## 2 1 2 


# If you want seperate counts in each item of list 
lapply(test, table) 
## [[1]] 
## 
## a b c 
## 1 1 1 
## 
## [[2]] 
## 
## a 
## 1 
## 
## [[3]] 
## 
## c 
## 1 
## 
4

使用unlist第一

table(unlist(test)) 
相關問題