我需要替換路徑名字串串列中的第一個句點(“。”),我知道我應該能夠用正則運算式做到這一點,但找不到一個好的例子。
以下是路徑名的示例:
paths <- c("/Users/user/Study/data/ARaw_Sequences/16S_raw_sequences/RemovePrimer_Final.274571-3-2022_1.fq.gz",
"/Users/user/Documents/R/Study/data/Raw_Sequences/16S_raw_sequences/RemovePrimer_Final.274575-15-2022_1.fq.gz")
我需要替換Finalid 代碼之間的句點,27...所以它最終會像這樣 -
RemovePrimer_Final_274575-15-2022_1.fq.gz
uj5u.com熱心網友回復:
basename()將從您的檔案路徑中回傳檔案名,我們只能用它sub()來替換第一個“。” 特點。
paths <- c("/Users/user/Study/data/ARaw_Sequences/16S_raw_sequences/RemovePrimer_Final.274571-3-2022_1.fq.gz",
"/Users/user/Documents/R/Study/data/Raw_Sequences/16S_raw_sequences/RemovePrimer_Final.274575-15-2022_1.fq.gz")
sub("\\.", "_", basename(paths))
#> [1] "RemovePrimer_Final_274571-3-2022_1.fq.gz"
#> [2] "RemovePrimer_Final_274575-15-2022_1.fq.gz"
使用reprex v2.0.2創建于 2022-11-10
編輯洗掉basename()將替換“。” 在完整路徑中帶有“_”。
paths <- c("/Users/user/Study/data/ARaw_Sequences/16S_raw_sequences/RemovePrimer_Final.274571-3-2022_1.fq.gz",
"/Users/user/Documents/R/Study/data/Raw_Sequences/16S_raw_sequences/RemovePrimer_Final.274575-15-2022_1.fq.gz")
sub("\\.", "_", paths)
#> [1] "/Users/user/Study/data/ARaw_Sequences/16S_raw_sequences/RemovePrimer_Final_274571-3-2022_1.fq.gz"
#> [2] "/Users/user/Documents/R/Study/data/Raw_Sequences/16S_raw_sequences/RemovePrimer_Final_274575-15-2022_1.fq.gz"
雙斜杠是必需的,因此 R 會查找.字符。否則,帶有“。”的正則運算式 將匹配任何字符。反斜杠讓我們逃避這種匹配并回傳我們想要的顯式匹配。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/531248.html
標籤:r正则表达式细绳列表代替
上一篇:過濾并顯示來自R資料框的選定結果
