首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Day07 生信马拉松-数据整理中R

.玩转字符--stringr包 1.1 字符长度-引号内单个字母/数字/符号数量 x <- "The birch canoe slid on the smooth planks." x str_length...#提取x中第5和第9位字符 str_sub(x,5,9) 1.4 字符检测 str_detect(x2,"h") # 第一个参数为向量名,第二个是检测关键词 str_starts(x2,"T")...#判断x2中T开头字符,输出逻辑向量 str_ends(x2,"e") #判断x2中e结尾字符,输出逻辑向量 1.5 字符替换 x2 str_replace(x2,"o","A") #每个元素里面只替换第一次出现目标字符...### library(dplyr) i = rnorm(10) case_when(i>0 ~ "+", i<0 ~ "-", T ~ "0") ★★★★★长脚本管理方式...ggplot2对行名并不友好,通常要使样本名转化为data.frame中第一列,防止在后续代码运行过程中行名丢失 图片 图片 step2 把原来行名转变为第一列 图片 step3 宽变长 :test

20700

生信入门马拉松之R语言基础-脚本项目管理、条件循环、表达矩阵和一丢丢数据挖掘(Day 7)

复习R包stringr字符操作几个函数-长度、拆分、提取、字符检测、替换和删除。...2.2.2 组织方式二(小洁老师现在使用方式):拆分1个项目为多个子项目(道理类似于脚本拆分子脚本),每个子项目为1个文件夹,每个文件夹一个Rproject; load("../1_data-pre(工作目录隔壁文件夹...2.3 if条件语句控制代码运行elseif(F){}啥都不敢if(F){}elese{}#运行else{}中代码2.4 ifelse函数只有3个参数ifelse(x,yes,no)x:逻辑或逻辑值向量...代码2实现结果和代码1相同2.6 练习library(dplyr)x = c(-1,-1,4,5,2,0)case_when(x>0 ~ "A", x==0 ~ "0",...跟多个条件两句代码比较看哈!!

11500
您找到你想要的搜索结果了吗?
是的
没有找到

生信技能树- R语言-day7

玩转字符1.检测字符长度str_length(x)length(x)# 字符个数2.字符拆分str_split(x," ") # 把42个字符 按照“空格”拆分成八个字符class(str_split...(x2,"o","A") #如果向量里一个数据有两个o,只替换第一个str_replace_all(x2,"o","A") #如果向量里一个数据有两个o,都替换str_replace_all(x2...duplicated(mm)] 提取没有重复第一次出现mutate,数据框新增一列mutate(test, new = Sepal.Length * Sepal.Width) new是新产生列名新加之后...else2, ifelse(,,ifelse)在ifelse里加一个ifelse补充 case_when练习题1.加载deg.Rdata,根据a、b两列值,按照以下条件生成向量x:load("deg.Rdata...("douhua",1:100,".txt")file.create(f)file.remove(f)重要函数脚本管理便于方面管理文件夹save(赋值各个文件名,file = "xxxx.Rdata

6700

一道二进制子算法,让面试官都解不出来?

示例1: 输入:“00110011” 输出:6 解释:有6个子具有相同数量连续1和0: “0011”,“01”,“1100”,“10”,“0011”,“01”。...示例2: 输入:“10101” 输出:4 解释:有4个子,“10”,“01”,“10”,“01”,它们具有相同数量连续1和0。...s 给都是二进制数,要求计算具有相同数量 0 和 1 非空(连续)子字符数量,这句话里面的条件有三个: 第一 不为空,非空(连续) 第二 0 和 1 是要相同数量 第三 0 和 1 要是连续出现子字符数量...满足条件为前面的数量大于等于后面的数量,即为pre>=cur时,我们计数满足条件加1情况,定义计数为count,满足条件时,count++ // 计算前一个字符连续出现次数 let pre = 0...即这些情况满足如下:计算前一个字符连续出现次数大于等于计算一个字符连续出现次数,即为pre>=cur条件满足,计数情况count++,循环字符,返回我们需要count计数。

42230

一道二进制子算法,让面试官都解不出来?

示例1: 输入:"00110011" 输出:6 解释:有6个子具有相同数量连续1和0: “0011”,“01”,“1100”,“10”,“0011”,“01”。...示例2: 输入:“10101” 输出:4 解释:有4个子,“10”,“01”,“10”,“01”,它们具有相同数量连续1和0。...s 给都是二进制数,要求计算具有相同数量 0 和 1 非空(连续)子字符数量,这句话里面的条件有三个: 第一 不为空,非空(连续) 第二 0 和 1 是要相同数量 第三 0 和 1 要是连续出现子字符数量...满足条件为前面的数量大于等于后面的数量,即为pre>=cur时,我们计数满足条件加1情况,定义计数为count,满足条件时,count++ // 计算前一个字符连续出现次数 let pre = 0...即这些情况满足如下:计算前一个字符连续出现次数大于等于计算一个字符连续出现次数,即为pre>=cur条件满足,计数情况count++,循环字符,返回我们需要count计数。

55430

R语言基础5(绘图基础)

5mm alpha = 0.5, # 透明度 50% shape = 8) # 点形状 ##颜色:字符,blue, red等; #2.2...iris_box_ggpubr.png") #3.eoffice包 导出为ppt,全部元素都是可编辑模式 library(eoffice) topptx(p,"iris_box_ggpubr.pptx") ###超点或行列热图不适用...2、搜索画图代码 3、仿制示例数据 4、套代码,调整细节 玩转字符 str_length() length()#向量里面元素个数 str_split() str_sub(x,5,9)#提取5-9元素...可用于向量取子集; str_replace(x,"o","a")#将x中o替换为a,只替换出现第一个o; str_replace(x,"o|s","a")#将x中o或者s替换为a,只替换出现第一个...#用之前需要加载stringr包或dplyr包,快捷键ctrl+shift+M 条件或循环 rm(list = ls()) ## 一.条件语句 ###1.if(){ } #### (1)只有if

30571

数组中字符匹配(难度:简单)

,那么当要对比两个字符是,需要先判断哪一个字符长度较长,那么就调用该字符contains(...)方法来判断另外一定字符是否是其子,如果满足条件,那么将这个子放入到List<String...,依然是采用暴力破解方式,但是与第一种不同点是,从数组中第一个字符开始,每次获取一个字符,然后与其他字符进行对比(即:除了自己),那么只要发现这个字符是对方了,那么就终止遍历,即可将这个子加入到...首先,我们获取数组中第一个字符“leetcoder”,让它与其他字符作比较,来判断“leetcoder”是否是对方,那么遍历完其他字符之后,发现,都不满足成为对方子条件,那么本次循环结束...那么第二个我们拿“leetcode”去与其他字符做比较,当对比数组中第一个字符“leetcoder”时候,就满足了“leetcode”是“leetcoder”判断条件,因为已经确定了”leetcode...第三个我们拿”od“与其他字符做比较,它结果与上面类似,都是在遍历第一个元素“leetcoder”就满足了od是其子条件,那么同样将od加入到result集合中,并结束本次循环。

53020

JavaScript刷LeetCode-字符类解题技巧_2023-02-27

示例 1 : 输入: "00110011" 输出: 6 解释: 有6个子具有相同数量连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。...示例 2 : 输入: "10101" 输出: 4 解释: 有4个子:“10”,“01”,“10”,“01”,它们具有相同数量连续1和0。 注意: s.length 在1到50,000之间。...str.slice(i))找符合条件 找到满足条件,就保存结果 for i=0;i<str.length-1;i++ r=match(str.slice(i)) if r...,使用test方法与传入字符进行比对,返回第一个比对成功字符,保存到数组result中 以此类推,剃掉原字符第一个字符再调用一次match方法,直到原字符只剩下1个字符,返回数组result...前一个数字出现次数>=一个数字出现次数,则一定包含满足条件。即cur小于等于pre则符合条件

26620

一道题目带你搞懂回溯算法

4 个字符,然后判断分隔出 4 个字符是否满足 ip 某一段要求,假如 4 个字符都在 0 到 255 之间并且没有前导零,那就是一个合法 ip 地址。...比如 25525511135,先来确定 ip 第一段,第一段最多有 3 种可能:2,25,255,这里可以使用一个小循环。假如先选择 2 做为 ip 第一段,2 小于等于 255,满足要求。...接下来确定 ip 第二段,也就是说对剩余字符 5525511135 重复上述操作,同样,最多有 3 种可能:5,55,525。假如这里选择 5, 5 是小于等于 255 ,因此满足条件。...每一层检索都是一个递归操作,递归退出条件就是到第 5 层结束,第 5 层结束如果没有剩余字符,说明找到了一个正确 IP 地址,保存到结果集里即可。...写代码时我们可以把叉树遍历骨架写出来: def backtrace(root :str) -> None: """ 有 3 个子节点叉树中序遍历。

43420

最多不重叠子字符(贪心)

题目 给你一个只包含小写字母字符 s ,你需要找到 s 中最多数目的非空子字符满足如下条件: 这些字符之间互不重叠,也就是说对于任意两个子字符 s[i…j] 和 s[k…l] ,要么 j <...如果一个子字符包含字符 char ,那么 s 中所有 char 字符都应该在这个子字符中。 请你找到满足上述条件最多子字符数目。...示例 1: 输入:s = "adefaddaccc" 输出:["e","f","ccc"] 解释:下面为所有满足第二个条件子字符: [ "adefaddaccc" "adefadda",..."ef", "e", "f", "ccc", ] 如果我们选择第一个字符,那么我们无法再选择其他任何字符,所以答案为 1 。...同时我们可以发现,选择 "ef" 不是最优,因为它可以被拆分成 2 个子字符。 所以最优解是选择 ["e","f","ccc"] ,答案为 3 。 不存在别的相同数目子字符解。

58210

给定m个不重复字符 ,以及一个长度为n字符tbcacbdata滑动窗口

题目 给定m个不重复字符 [a, b, c, d],以及一个长度为n字符tbcacbdata, 问能否在这个字符中找到一个长度为m连续子,使得这个子刚好由上面m个字符组成,顺序无所谓,返回任意满足条件个子起始位置...本题需要满足长度为m,字符不重复,可以使用长为m滑动窗口遍历字符,窗口内每个字符都要出现一次,如果符合条件,就返回窗口起始位置。...代码 /** * 给定m个不重复字符 [a, b, c, d],以及一个长度为n字符tbcacbdata, * 能否在这个字符中找到一个长度为m连续子,使得这个子刚好由上面...* 顺序无所谓,返回任意满足条件个子起始位置,未找到返回-1。比如上面这个例子,acbd,3....,每次取目标数组大小进行比较,不符再向后移动 if (checkSubStr(ch, s.substring(i, i + targetCharSize))) {

25910

R语言学习笔记之——数据处理神器data.table

将近1.6G,900万记录,16个字段。...(carrier,tailnum)] #但心里要清楚列索引接受条件是含有列表列表,而且这里列表作为变量给出,而非data.frame时代字符向量。 行列同时索引毫无压力。...注意以上新建列时,如果只有一列,列名比较自由,写成字符或者变量都可以,但是新建列,必须严格按照左侧列名为字符向量,右侧为列表模式,当然你也可以使用第二种写法。...以上语法加入了新参数.SDcols和.SD,咋一看摸不着头脑,其实是在按照carrier,origin,dest三个维度分组基础上,对每个子块特定列进行均值运算。...SD, mean)则将各个子对应列应用于均值运算,并返回最终列表。

3.6K80

Java面试考点4之数据结构

叉树包括 B 树族,有 B 树、B+ 树、B* 树,比较适合用来做文件检索;另外一个是字典树,适合进行字符模匹配。...详解二叉搜索树 二叉搜索树 如下图所示,二叉搜索树满足这样条件,每个节点包含一个值,每个节点至多有两个子树。每个节点左子树节点值都小于自身值,每个节点右子树节点值都大于自身值。...第一步,要找到最小子问题求解方法; 第二步,要找到合并子问题解方法; 第三步,要找到递归终止条件。 动态规划法 动态规划法,与分治法类似,也是将问题分解为多个子问题。...使用动态规划场景需要也满足三点条件: 子问题求解必须是按顺序进行; 相邻子问题之间有关联关系; 最后一个子问题解就是初始问题解。...分支界定法 最后是分支界定法,与回溯法求解目标不同。回溯法求解目标是找出满足约束条件所有解,而分支界定法求解目标则是找出满足约束条件一个解。

40820

串联所有单词----滑动窗口篇八

---- 串联所有单词题解集合 暴力匹配版滑动窗口 用哈希优化暴力滑动 滑动距离优化+哈希优化 ---- 暴力匹配版滑动窗口 思路: 首先,最直接思路,判断每个子是否符合,符合就把下标保存起来...else { //每匹配完一个子,就去对应查找数组中删除已经找到字符 Words.erase(ret); leftNum--;//当前子匹配,说明少了一个需要匹配...第一类: 当子完全匹配,移动到下一个子时候。 因为当前区间满足条件,那么下一次滑动区间就可以直接往右移动一个单词长度。...并且看图,由于前面两个foo其实已经判断过了,是匹配,因此我们可以直接从第三个foo位置,即判断新加入单词是否满足条件即可。...当前区间bar单词出现了两次,而所给words数组中只出现了一次,显然不满足条件,因此我们需要调整滑动区间位置直到当前区间每个元素出现次数满足条件为止。

29630

【数据结构】叉树常见形式

如果允许每个节点可以有更多数据项和更多子节点, 就是叉树(multiway tree) 后面我们讲解 2-3 树,2-3-4 树就是叉树,叉树通过重新组织节点,减少树高度,能对二叉树进行优化...4 次 I/O 操作就可以读取到想要元素, B 树(B+)广泛 应用于文件存储系统以及数据库系统中 2-3 树 2-3 树是最简单 B 树结构, 具有如下特点: 2-3 树所有叶子节点都在同一层...(只要是 B 树都满足这个条件) 有两个子节点节点叫二节点,二节点要么没有子节点,要么有两个子节点....(演示一下构建 2-3 树过程.) 插入规则: 2-3 树所有叶子节点都在同一层.(只要是 B 树都满足这个条件) 有两个子节点节点叫二节点,二节点要么没有子节点,要么有两个子节点....有三个子节点节点叫三节点,三节点要么没有子节点,要么有三个子节点 当按照规则插入一个数到某个节点时,不能满足上面三个要求,就需要拆,先向上拆,如果上层满,则拆本层, 拆仍然需要满足上面 3 个条件

85110

Codeforces Round #668 (Div. 2)A-D

思路: 看到第一个样例就不难想到其中一个构造方法是将排列 p 翻转直接输出,将排列 p 反转得到 p' ,将其带入 F 函数得到 不难看出排序两个排列 F 是相同,故直接将排列 p 翻转输出即可...在这里插入图片描述 假设 s[ 1 : 4 ] 这个子满足 ' 0 ' 数量等于 ' 1 ' 数量,那么考虑与其相邻前面的那个子 s[ 0 : 3 ] ,因为 s[ 1 : 3 ] 这个子是共用...,如果 s[ 0 : 3 ] 也想满足这个约束的话,显然是需要让 s[ 0 ] = s[ 4 ] 才行,同理考虑与其相邻后面的那个子 s[ 2 : 5 ] ,也能得到 s[ 1 ] = s[ 5 ]...这个结论,推广一下,就能得出需要满足第一条件就是,对于任意一个位置 i 来说,需要满足 s[ i ] == s[ i + k ],在这个题目中的话,问号特判一下就可以了再仔细观察一下第一条件约束条件是...s[ i ] = s[ i + k ],这也就相当于对 k 取余一个划分,到此为止再反观一下这个题目,不难发现 s 中所有长度为 k ,其本质就是 k 划分,所以我们在判断第一条件同时,

51430
领券