小球编号 向量筛选

2023-12-13 01:00:05 浏览数 (2)


title: "lesson2 课后思考"

output: html_document

date: "2023-12-12"


代码语言:{r setup, include=FALSE}复制
knitr::opts_chunk$set(echo = TRUE, message = F, warning = F)

关于13个彩色球带编号问题

代码语言:text复制
install.packages("stringr")
library(stringr) #安装stringr包

对13个小球进行编号,蓝色b1,b2……,绿色g1,g2……,黄色y1,y2(这里需跟后面y0的赋值区分开,这里是坏习惯!变量和赋值尽量用不同的字母!)

代码语言:text复制
x0 <- paste0(rep("b",3), seq(1,3,1))
y0 <- paste0(rep("g",4), seq(1,4,1))
z0 <- paste0(rep("y",6), seq(1,6,1))
new_1 <- c(x0, y0, z0)

学习一下stringr包的用法:字符型向量中开头或结尾匹配查询的思想,str_starts()用于开头匹配,str_ends()用于结尾匹配,输出的结果是逻辑值,本例中相当于需要筛选出开头是b或g的所有变量,用到的还是逻辑值筛选的思想

代码语言:text复制
??stringr #请直接去看example
代码语言:text复制
str_starts(new_1,"b"); str_starts(new_1,"g") #运行函数看一下
new_1[c(str_starts(new_1,"b"))] #输出b开头的
new_1[c(str_starts(new_1,"g"))] #输出g开头的

最开始假设这个场景其实是想假设有序筛选的问题,所以第一反应是给小球进行编号,但解决这个问题的过程中发现好像和有序筛选没啥关系……后续再继续想一下

第一次用Rmarkdown不太熟练orz 请大家多多提意见多多指正!有的代码写得也挺冗长的不知道怎么精简

引自生信技能树

0 人点赞