我想计算数据框中某些字符串的频率。
strings <- c("pi","pie","piece","pin","pinned","post")
df <- as.data.frame(strings)
然后,我想计算一下字符串的频率:
counts <- c("pi", "in", "pie", "ie")
给我这样的东西:
string freq
pi 5
in 2
pie 2
ie 2
我已经尝试过了grepl
,table
但是看不到如何指定要搜索的字符串。
您可以使用sapply()
去counts
和每一个项目中匹配counts
对strings
列df
使用grepl()
,这将返回一个logical
向量(TRUE
如果匹配,FALSE
如果不匹配)。您可以对该向量求和以得到匹配数。
sapply(df, function(x) {
sapply(counts, function(y) {
sum(grepl(y, x))
})
})
这将返回:
strings
pi 5
in 2
pie 2
ie 2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句