在 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)
.
我有一个存储为列表 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)
.