網站首頁 編程語言 正文
下面介紹一下R語言中行篩選的方法,主要介紹filter函數
1. 數據
這里,使用asreml分析中的BLUP值為例,相關的模型為:
m1 = asreml(Phen ~ G , random = ~ vm(Progeny,ainv) + vm(Dam,ainv) + vm(Progeny,dinv), workspace = "10Gb", residual = ~ idv(units),data = dat) summary(m1)$varcomp
計算育種值:
blup = coef(m1)$random head(blup) tail(blup)
數據特點:
- 沒有ID列,rownames的前綴為類型,比如
vm(Progeny, ainv)
為加性效應的BLUP值,vm(Progeny,dinv)
為顯性效應的BLUP值。
提取目的:
- 提取加性效應的BLUP值,顯性效應的BLUP值和母體效應的BLUP
- 值提取BLUP值大于0.1的個體
2. 生成ID列和類型
首先,把rowname提取,作為新的一列
blup1 = blup %>% as.data.frame() %>% mutate(ID = rownames(.)) head(blup1)
根據下劃線,進行分列:
blup2 = blup1 %>% separate(ID,into = c("Type","IID"),sep = "_",remove = F) head(blup2)
3. 提取effect大于0.1的行
re1 = blup2 %>% filter(effect>0.1) head(re1)
4. 提取加性效應,且effect小于0的行
這里,條件之間,默認是并集,如果想用交集,用|間隔。
re2 = blup2 %>% filter(Type == "vm(Progeny, ainv)",effect <0) head(re2)
5. 根據部分行名刪選
select函數,可以根據開頭,中間,結尾,進行列的刪選。
filter結合其它函數,也可以進行行的篩選。
如果想對ID中,包含ainv的行,進行篩選,可以這樣操作:
re3 = blup2 %>% filter(str_detect(ID,"ainv")) %>% arrange(-effect) head(re3)
注意,這里str_detect的pattern是正則表達式。如果直接用原始的字符:
re3 = blup2 %>% filter(str_detect(ID,"vm(Progeny, ainv)")) %>% arrange(-effect) head(re3)
可以看到,報錯,如果想要支持,需要對括號用兩個反斜線進行轉義。
轉義后的代碼:
re3 = blup2 %>% filter(str_detect(ID,"vm\\(Progeny, ainv\\)")) %>% arrange(-effect) head(re3)
6. 固定字符特征進行行篩選
str_detect沒有fixed = T的選項,如果想固定字符匹配,可以用fixed()函數:
re3 = blup2 %>% filter(str_detect(ID,fixed("vm(Progeny, ainv)"))) %>% arrange(-effect) head(re3)
總結
原文鏈接:https://blog.csdn.net/yijiaobani/article/details/122566607
相關推薦
- 2022-12-21 C和C++中argc和argv的含義及用法詳解_C 語言
- 2023-11-21 conda創建python虛擬環境常用指令和流程
- 2022-04-10 C#實現泛型動態循環數組隊列的方法_C#教程
- 2023-06-05 C++頭文件和cpp文件的原理分析_C 語言
- 2022-09-26 Ubuntu 22.04 源碼安裝 openssl 1.1 error while loading
- 2022-09-28 k8s證書有效期時間修改的方法詳解_云其它
- 2022-09-17 ASP.NET?Core項目中集成TypeScript_實用技巧
- 2021-12-12 C/C++?Qt?MdiArea?多窗體組件應用教程_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支