使用R完成字符串的子字符串频率统计

整理自统计之都论坛

方法一   使用strsplit函数

a <- "aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg"
b <- strsplit(as.character(a),"ag")
length(b[[1]]) - 1  ##子字符串"ag"的出现个数

方法二   使用正则式函数

a <- "aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg"
b <- strsplit(as.character(a),"ag")
regexpr("ag",a)
gregexpr("ag",a)
gregexpr("a.g",a)
attr(gregexpr("a.g",a)[[1]], "match.length")   #提取子模式长度

方法三  使用str_count函数

library(stringr)
str_count("1212345", c("12", "23", "00"))

一个使用实例

计算a*g中间有0-5个任意字母的频率

library(stringr)
str <- "aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg"
n <- 0:5
patterns <- sapply(n,function(i) {
  paste0("a\\w{",i,"}g")
})
counts <- str_count(str,patterns)
names(counts) <- n
counts

使用R完成字符串的子字符串频率统计,码迷,mamicode.com

时间: 2024-11-13 08:34:02

使用R完成字符串的子字符串频率统计的相关文章

字符串内子字符串的逆序算法

源于一道ACM的题目,要求将字符串中的子字符串逆序输出,最初的想法就是利用strtok按照空格进行分割字符,再实现以下单个字符串的逆序,再通过strcat进行字符串的拼接,感觉这个想法不错,利用库函数搞搞,但是不知道哪里出错,strcat出来的字符串输出的时候会出现多个换行,非常难受,感觉一个简单的问题,代码太多,所以睡觉的时候就在想,我应该考虑自己写一个算法来实现这个需求,刚好最近在看算法方面的书,那就尝试下吧. 基本思想,从前往后扫描字符串,遇到空格停止,字符串第一个字符start位置,扫描

NSString从父字符串提取子字符串

NSString除了创建, 对比等等方法, 它还可以在父字符串中提取一段字符形成一个新的子字符串. 使用的方法一共有三种: substringToIndex:如果我在这方法的后面输入一个6, 意思就是截取从第一到第六个的字符, 并形成一个新的子字符串, 类似于开区间, (0 <= a > 6) substringFromIndex:如果我在这方法的后面输入一个5, 意思就是截取从第五到最后一个的字符串, 并形成一个新的子字符串, 类似于闭区间, (5 <= a >=x) subst

分解字符串的子字符串 键值对

slConnection := TStringList.Create;slConnection.Delimiter := '&'; slConnection.DelimitedText := DBConStr; ConnectionConfig.Server := slConnection.Values['Server']; ConnectionConfig.Username := slConnection.Values['Username']; ConnectionConfig.Passwor

iOS 查找字符串 相同 子字符串的位置 range

问题:解决替换同一个字符串的多个相同的字符eg. xxx这个超级大土豪白送xxx一个!赶快来抢把! 将第一个xxx换成名字 将第二个xxx换成物品 两种办法    第二种办法更灵活一点 //第一种办法简单粗暴(思路获取第一次xxx出现的位置然后替换成名字 替换之后string中就只有一个xxx了  然后用物品替换string中仅有的一个xxx) //        NSRange range = [share6 rangeOfString:@"xxx"];//获取第一次出现的位置 //

[LeetCode] Unique Substrings in Wraparound String 封装字符串中的独特子字符串

Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz", so s will look like this: "...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....". Now we have another string p. Your job is to find

寻找子字符串——上

第十一章的习题7,刚开始觉得简单,可是实际思考时发现要考虑很多东西,然后脑子就一片混沌了,然后问题一拖一个月,然而时间并没有帮我解决掉问题,问题还是要自己去努力接触才能发展的呀. 有参考答案,上网也找到了答案,昨天验证了下,是对的.自己就是眼高手低,还犟,想凭借自己的"智慧"想出来(别人的我看了觉得费劲,而且很难理解他的思想,他到底是怎么想到的呢).不过不能自负,遇到问题想不出来很正常,就该学习自己想不到的思路,改变自己的思维方式.应该向前人学习,可以先读懂,理解一点是一点,接触多了自

R语言学习笔记:字符串处理

想在R语言中生成一个图形文件的文件名,前缀是fitbit,后面跟上月份,再加上".jpg",先不百度,试了试其它语言的类似语法,没一个可行的: C#中:"fitbit" + month + ".jpg" VB:"fitbit" & month & ".jpg" Haskell:"fitbit" ++ month ++ ".jpg" 还想到concat之

LeetCode 5 Longest Palindromic Substring(最大回文子字符串)

翻译 给定一个字符串S,找出它的最大回文子字符串. 你可以假定S的最大长度为1000, 并且这里存在唯一一个最大回文子字符串. 原文 Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring. 暴力搜索,O(n

5325包含所有三种字符的子字符串数目

题目:给你一个字符串 s ,它只包含三种字符 a, b 和 c .请你返回 a,b 和 c 都 至少 出现过一次的子字符串数目. 链接:https://leetcode-cn.com/problems/number-of-substrings-containing-all-three-characters/ 法一:自己的代码 思路:刚开始的思路是利用类似戳气球的方法,dp[i][j]表示字符串中从i到j的符合条件的字符串的个数,进而推导从dp[i+1][j]和dp[i][j-1]如何计算出dp[