我有一个可变长度的已排序子列表。每个子列表的大小可变。我想做两件事。第一个是每个子列表的出现次数的总和。例如。
[[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循环构建一个字典,每当我遇到字典中已有的项目时,该字典会增加1。然而,当涉及到R时,我才是个孩子。这是我到目前为止所尝试的内容。
tabled_data <- table(parsed_data)
告诉我,我需要拥有相同长度的数据
我也试过
for(i in length(parsed_data)){
sum(parsed_data == parsed_data[i])
}
但是我收到错误消息“未实现这些类型的比较”
答案 0 :(得分: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))
如果向量中的顺序可能会发生变化,您可能希望在粘贴之前对它们进行排序。