在 R 列表中搜索指定模式

Searching for specified pattern in R list

我有一个存储为列表 DataList 的数据集

[[1]]

[1] a  

 [2] f 

 [3] e       

 [4] a 

[[2]] 

 [1] f 

 [2] f

 [3] e

我正在尝试创建一个函数 Getfrequence,它 return 列表 DataList

中给定模式的频率
GetFrequence<- function(pattern, DataList)
{
freq= 0
i = 1
while (i<= List.length())
 {
  if (.....)
    freq= freq + 1
 }
 return freq
}

我的问题是如何搜索列表中是否存在给定模式?

我假设模式是指列表中的不同元素。那么这样的事情可能会有帮助吗?

首先,让我们创建一个与您上面提供的大致相似的列表:

a <- list(letters[1:3], letters[1:2], letters[1:5])
[[1]]
[1] "a" "b" "c"

[[2]]
[1] "a" "b"

[[3]]
[1] "a" "b" "c" "d" "e"

现在,要获得整个列表中每个项目的频率,我们可以 unlist 列表并将所有内容堆叠到一个向量中。一旦我们剩下一个简单的向量,我们就可以使用 table

table(unlist(a))

 a b c d e 
 3 3 2 1 1 

请注意,您可能需要多次使用 unlist,具体取决于您的实际 list-结构。也就是说,如果您有一个列表列表,则可能需要稍微调整一下代码。那样的话,请poststr(your_list).