我有一個清單
temp_list <- c("Temp01_T1", "Temp03_T1", "Temp04_T1", "Temp11_T6",
"Temp121_T6", "Temp99_T8")
我想按如下方式更改此串列
output_list <- c("T1_Temp01", "T1_Temp03", "T1_Temp04", "T6_Temp11",
"T6_Temp121", "T8_Temp99")
任何線索將不勝感激
uj5u.com熱心網友回復:
使用基本 R 答案sub-
sub('(\\w )_(\\w )', '\\2_\\1', temp_list)
#[1] "T1_Temp01" "T1_Temp03" "T1_Temp04" "T6_Temp11" "T6_Temp121" "T8_Temp99"
您可以在兩個捕獲組中捕獲資料,一個在下劃線之前,另一個在下劃線之后,并使用反向參考反轉它們。
uj5u.com熱心網友回復:
這應該有效。
sub("(.*)(_)(.*)", "\\3\\2\\1", temp_list)
您捕獲三組,一組在下劃線之前,一組是下劃線,一組在下劃線之后,然后重新排列替換運算式中的順序。
uj5u.com熱心網友回復:
python方法:拆分'_',使用-1步索引切片反轉順序,并使用'_'加入:
['_'.join(i.split('_')[::-1]) for i in temp_list]
uj5u.com熱心網友回復:
如果始終str_split()由stringr_sapply()_
x <- stringr::str_split(temp_list, "_")
sapply(x, function(x){paste(x[[2]],x[[1]],sep = "_")})
uj5u.com熱心網友回復:
一個技巧paste read.table
> do.call(paste, c(rev(read.table(text = temp_list, sep = "_")), sep = "_"))
[1] "T1_Temp01" "T1_Temp03" "T1_Temp04" "T6_Temp11" "T6_Temp121"
[6] "T8_Temp99"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516521.html
標籤:r正则表达式细绳列表
下一篇:僅向某些行名添加前綴和后綴
