0

我有一个可变长度的排序子列表的列表。每个子列表的大小可变。我想做两件事。第一个是对每个子列表的出现次数求和。例如。

[[11533]]
[1] "Mexican"     "Restaurants"

[[11534]]
[1] "Mexican"     "Restaurants"

[[11535]]
[1] "Food"    "Grocery"    "dinner"

Count                 Item
2            "Mexican"     "Restaurants"

1           "Food"    "Grocery" "dinner"

第二部分是将每个子列表分解为一个向量,然后对每个项目求和。例如

[[11533]]
[1] "Mexican"     "Restaurants"

[[11534]]
[1] "Mexican"     "Restaurants"

[[11535]]
[1] "Food"     "Dinner"     "Grocery" 

"Mexican"
"Restaurants"
"Mexican"
"Restaurants" 
"Food"    
"Dinner"    
"Grocery" 

"Mexican" 2
"Restaurants" 2
"Food" 1    
"Dinner" 1    
"Grocery" 1

在 python 中,我会使用一个循环遍历我的主列表的 for 循环来构建一个字典,每当我遇到字典中已有的项目时,该字典就会增加一个。然而,当谈到 R 时,我还是个婴儿。这是我到目前为止所尝试的。

tabled_data <- table(parsed_data)

告诉我我需要具有相同长度的数据

我也试过

for(i in length(parsed_data)){
  sum(parsed_data == parsed_data[i])
}

但我收到错误消息“未实现这些类型的比较”

4

1 回答 1

2

您可以使用以下table命令:

testData <- list(c("Mexican","Restaurants"),c("Mexican","Restaurants"),c("Food","Grocery","dinner"))

# First question (join the vectors and then table them)
  table(sapply(testData,paste,collapse=""))

# Second problem (unlist the list and table it): 
  table(unlist(testData))

如果向量中的顺序可能发生变化,您可能需要在粘贴它们之前对其进行排序。

于 2013-06-04T07:54:11.263 回答