R:计算带有子元素的嵌套列表中值的频率

anp*_*ami 6 r list frequency nested-lists

我有一个包含国家/地区名称的嵌套列表。我想计算国家/地区的频率,即在子列表中每次提及时都会添加 +1(无论该国家/地区在该子列表中的提及频率如何)。

例如,如果我有这个列表:

[[1]]
[1] "Austria" "Austria" "Austria"

[[2]]
[1] "Austria" "Sweden"

[[3]]
[1] "Austria" "Austria" "Sweden"  "Sweden" "Sweden" "Sweden"

[[4]]
[1] "Austria" "Austria" "Austria"

[[5]]
[1] "Austria" "Japan" 
Run Code Online (Sandbox Code Playgroud)

...然后我希望结果是这样的:

country        freq
====================
Austria         5
Sweden          2
Japan           1
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种方法来使用lapplyunlisttable等,但没有任何方法可以满足我的需要。我将不胜感激您的帮助!

sin*_*dur 5

一种方法有lapply()unlist()table()

count <- table(unlist(lapply(lst, unique)))
count
# Austria   Japan  Sweden 
#       5       1       2 


as.data.frame(count)
#      Var1 Freq
# 1 Austria    5
# 2   Japan    1
# 3  Sweden    2
Run Code Online (Sandbox Code Playgroud)

可重现数据(请下次提供):

lst <- list(
  c('Austria', 'Austria', 'Austria'), 
  c("Austria", "Sweden"), 
  c("Austria", "Austria", "Sweden", "Sweden", "Sweden", "Sweden"), 
  c("Austria", "Austria", "Austria"), 
  c("Austria", "Japan")
)
Run Code Online (Sandbox Code Playgroud)