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

TidyFriday 每天 5 分钟,轻轻松松上手 R 语言(四)

例如,要选择总睡眠时间在16至18小时之间的所有动物,我可以使用filter(sleep_total >= 16, sleep_total <= 18) ,但是使用 between ()看起来会更简洁一些...Didelphimorphia North American Opossum 18.0 ## # ... with 27 more rows 基于正则的过滤 只有在完全匹配时,我们才能用字符串变量进行筛选...通过使用 filter (str_detect (name,pattern=“ mouse”)) ,我们会跳过含有 Mouse 的行。...Deer mouse 11.5 ## 5 African striped mouse 8.70 基于多条件的过滤 有时我们需要对多个条件进行筛选...dplyr 包还有几个功能强大的包,来支持我们跨筛选 「filter_all」 现在有个需求,只要值包含字母组合 Ca 我们就把这个观测值筛选出来,我们可以用any_vars() 结合str_detect

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

数据处理第3部分:选择行的基本和高级的方法

如果要选择多个动物,可以使用%in%运算符。 以下代码将仅选择具有属于Didelphimorphia和Diprotodontia顺序的动物的行。...如果是这样,那么将对这些执行过滤器指令。 *filter_at()要求你在vars()参数中指定要进行过滤的。 在这些情况下,有一般语法:首先指定哪些,然后提及过滤器的条件。...下面的代码基本上要求保留任何变量中包含模式“Ca”的行。...描述都是字符,而测量数据是数字。 所以使用filter_if()我可以指定我只想过滤字符变量。 在这种情况下,我只得到7行。...Filter at 其中一个更强大的函数是filter_at():它不会过滤所有,也不需要你指定的类型,你可以通过`vars()选择要发生更改的。 论据。

1.3K10

阿榜的生信笔记7—R语言的综合运用1

arrange(test, desc(Sepal.Length)) :按照"Sepal.Length"这个变量的值"test"数组进行从大到小排序。...* Sepal.Width):这段代码使用了mutate函数,将test数据集中新增一个名为new的,该的值为Sepal.Length×Sepal.Width。...即最后一)之外的所有,然后将结果转换成矩阵(as.matrix),接着再选出前50行(head函数),最后使用pheatmap包中的pheatmap函数绘制热图。...①、多次赋值,产生多个中间的变量 ②、嵌套,代码不易读 ③、管道符号传递,简洁明了 三、条件语句和循环语句 1、if条件语句:满足()里面的条件,执行;不满足()里面的条件,不执行 ②、长脚本管理的两种方法...('-') } ifelse(i>0,"+",ifelse(i<0,"-","0")) ⑥、for循环 for循环可以机械重复操作符合同一条件的数据,下面列举了三个例子: ## 二、for循环 for

64100

生信技能树学习笔记 Day 3

函数stringr功能str_length() #测定字符串长度str_split() #拆分字符串str_sub() #按照位置提取字符 str_detect() #检测是否包含某个字符str_replace...筛选filter() #筛选行select() #筛选逻辑算法① 管道符号快捷键shift + control + M ② 条件代码if(条件,一个逻辑值){条件正确执行操作}else{条件错误进行的操作...}if(条件,一个逻辑值){条件正确执行操作}else if(条件){第二个条件正确进行的操作}用上述方法就可以同时实现多个条件ifelse条件函数ifelse(条件, 条件成立输出, 条件不成立输出)...t1 = str_detect(samples, "tumor") # 检测样本名中是否有tumorifelse(t1, "tumor', "normal") #如果样本名中包含tumor则输出tumor...()代码,进行多个条件判断③ for循环 for (i in x){执行操作}两种循环方式(1) 元素循环for(i in x){s= s+i}(2)下标循环for (i in 1:length(x)

41621

R练习50题 - 第一期

写在前面 从这期开始,大猫课堂将会推出一个新的系列:R练习50题,目的是使用50道练习题让大家掌握常用的数据操作,例如寻找每组最大的N个观测等。...在data.table的语法中,先进行列选择操作,再进行处理。所以上述语句会先执行str_detect,再执行unique。 练习2:每天上涨和下跌的股票各有多少?...这是因为data.table的第一个语句用来进行选择,由于我们这里需要对所有进行统计,所以不需要进行任何操作。 keyby用来进行分组,是整个代码的核心。先来看keyby = ....它是data.table内置函数之一,和unique几乎执行相同的操作,唯一不同的是,unique返回的是不重复的item(是一个向量),而uniqueN返回的是不重复的数量(是一个数字)。...整个代码的执行顺序是:先选择行(逗号空白行),再分组(keyby语句),最后进行组间统计(num语句)。 我们的答案中,行、以及分组三条语句各占一行,实际上这仅仅是为了让代码更直观。

2.4K40

从零开始的异世界生信学习 R语言部分 06 R应用专题

新增一是两数值的乘积 mutate(test, new = Sepal.Length * Sepal.Width) 图片 图片 select和filter 筛选出来的结果是数据框 3.连续操作,优秀的管道符号...");k2 ifelse(k2,"normal","tumor") 图片 多个条件的if判断 #### (3)多个条件 i = 0 if (i>0){ print('+') } else if (i...,可以将每次循环的结果都保存到列表中 ## cbind 按拼接 a = rnorm(10) b = 1:10 cbind(a,b) ##do.call() 函数是列表 list操作的函数,批量操作...", ##新的的名字 values_to = "count") ## 把原来中的数值一一应形成一个新的数值'count' 图片 library(ggplot2...图片 图片 ### 2.lapply(list, FUN, …) # 列表/向量中的每个元素(向量)实施相同的操作 test <- list(x = 36:33,y = 32:35,z = 30

2.5K30

2023.4生信马拉松day7-R语言综合应用

以上操作根据此前学过的知识新增列的话这么写: 图片 4.简单了解:select() 、filter()筛选、行 5.补充知识:管道符%>% -(1)当遇到连续的步骤时:多次赋值,会产生多个中间的变量;...; -(2)当逻辑值为TRUE时执行大括号内的代码,如果为FALSE就不执行; -(3)如果要执行的代码只有一行可以不加大于号; -(4)实例:安装R包的满分操作——根据一个包是否已安装来决定要不要安装这个包...) 4. ifelse()+str_detect()【王炸】 str_detect()可以检测样本中是不是含有某个字符,然后返回逻辑值,ifelse()逻辑值T/F进行替换 samples = c("...,"tumor","normal") k2 = str_detect(samples,"normal");k2 ifelse(k2,"normal","tumor") 5. else if() 多个条件进行判断...如何挑出30个数里最大的五个 -(1)排序 -(2)取最后五个 图片 3.向量/列表的隐式循环-lapply() 列表/向量中的每个元素实施相同的操作 lapply(1:4,rnorm) #批量画图

3.6K80

R语言基础提升与总结

* Sepal.Width)⭐只是在控制台上对数据框test进行了一些操作,实际上的test还是只有5!...3.1 if条件语句如果……就……if(一个逻辑值,不可以是逻辑值组成的向量){ }TRUE 执行FALSE 不执行如果……就……否则……if(一个逻辑值,不可以是逻辑值组成的向量){ }else{...do.call完成批量操作4 表达矩阵画箱线图4.1 表达矩阵的概念基因表达的数据通常使用表达矩阵来表示其中矩阵的行代表某个基因在不同样本(不同处理,或时间点等)中的表达水平列表示某个样本中各个基因的表达水平...mutate(group = rep(c("control","treat"),each = 3)) #数据框新增一#变形的函数 完成宽数据变长数据的操作pdat = dat%>% **pivot_longer...:具体函数X的每一行/每一进行FUN这个函数test<- iris[1:6,1:4]apply(test, 2, mean)apply(test, 1, sum)5.2 列表的隐式循环——lapply

14610

R07-R语言的综合应用

#数据框新增一,名称是new,结果是Sepal.Length * Sepal.Width两的乘积连续的步骤1.多次赋值,产生多个中间的变量x1 = select(iris,-5)x2 = as.matrix...ifelse(i>0,"+",ifelse(i0输出“+”,否则执行判断是否<0,T则输出“-”,F则输出0(套娃模式)二、for循环for(i in x){CODE}...# x里的每个元素i进行同一操作for( i in 1:4){print(i)} #1:4中的每个元素进行循环输出批量画图par(mfrow = c(2,2))for(i in 1:4)...FUN是函数#X的每一行/进行FUN函数test<- iris[1:6,1:4]apply(test, 2, mean)apply(test, 1, sum)向量/列表的隐式循环---lapplylapply...(list, FUN, …) #列表/向量中的每个元素实施相同的操作lapply(1:4,rnorm) #1:4中的每个元素进行rnorm操作5.数据框的连接inner_join #取交集连接full_join

5210

十二、R语言的综合应用

1.4.字符检测 str_detect(x2,"h") ### 看x2这个长度为8的向量中的每个元素是否含有h这个关键词,生成的与x2长度相等且一一应的逻辑值向量 str_starts(x2,"...###没有赋值,所以修改后的test还是5 图片 2.4 连续的步骤 select() 筛选 filter() 筛选行 2.4.1.多次赋值,产生多个变量 x1 = filter(iris,Sepal.Width...require(tidyr)) install.packages('tidyr') #### (2)有else if返回的逻辑值是true时,执行if的函数结果,返回的逻辑值是false时,执行的是...FUN是函数 test<- iris[1:6,1:4] apply(test, 2, mean) ### test的这个矩阵的每一求平均值 apply(test, 1, sum) ###.../向量中的每个元素(向量)实施相同的操作 test <- list(x = 36:33,y = 32:35,z = 30:27);test #返回值是列表,列表中的每个元素(向量)求均值(试试方差var

3.1K30

生信技能树- R语言-day7

elseif(一个逻辑值,不可以是多个逻辑值组成的向量){code1} else{code2}如果逻辑值是FALSE,就执行else里的codeifelse支持单个的逻辑值,也支持多个逻辑值组成的向量...= str_detect(samples,"normal");k2ifelse(k2,"normal","tumor")多个条件两种写法1,if。。。...deg$b <0.05;table(k2)x = ifelse(k1,"down",ifelse(k2,"up","no"))table(x)小李的case when写法循环让x里的每个元素i都进行代码操作...head 取头几个tail 取尾巴的几个还没做思考题:如何跳出一个表达矩阵里方差最大的1000个基因思考题:取出大于1的所有行向量/列表的隐式循环-lapplylapply(list, FUN, …)列表.../向量中的每个元素实施相同的操作lapply(1:4,rnorm)两个数据框的链接merge可以合并inner_join:交集都存在的取inner_join(test1,test2,by="name")

7200

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

Rdata可以保存多个变量,下次使用只需要一次load可以的到多个数据。-Rdata不仅可以保存数据框,也可以保存其他任何数据结构,包括复杂的对象!...table(x)2.7 for循环x里的每个元素进行同一操作for(i in x){CODE}#x是向量;i是代称,i自动等于某个循环里的x元素for( i in 1:4){ print(i)}#for...#x是数据框/矩阵名;MARGIN为1表示行,为2表示,FUN是函数test<- iris[1:6,1:4]apply(test, 2, mean)#test每一求平均值apply(test, 1..., sum)#test每一行求和向量/列表的隐式循环-lapply,批量操作### 2.lapply(list, FUN, …) # 列表/向量中的每个元素实施相同的操作lapply(1:4,rnorm...分组信息:是一个有重复值的离散型的向量,分组向量的元素和表达矩阵的是一一应的。

12500
领券