你好:我目前有一個檔案名串列(100s),在某些點用多個“/”分隔。我想在每個名稱中找到最后一個“/”并將其替換為“/Old”。我嘗試過的一個簡單示例:
我已設法為串列中的單個檔案名執行此操作,但似乎無法將其應用于整個串列。
Test<- "Cars/sedan/Camry"
然后我知道我嘗試在名稱中找到最后一個“/”,我嘗試了以下操作:
Last <- tail(gregexpr("/", Test)[[1]], n= 1)
str_sub(Test, Last, Last)<- "/Old"
這給了我
Test[1] "Cars/sedan/OldCamry"
這正是我所需要的,但我在申請tail和gregexpr申請我的名單時遇到了麻煩,以便它同時完成所有作業。
謝謝你的幫助!
為我糟糕的格式道歉仍在調整。
uj5u.com熱心網友回復:
如果您的檔案名在字符向量中,則可以str_replace()從stringr包中使用:
items <- c(
"Cars/sedan/Camry",
"Cars/sedan/XJ8",
"Cars/SUV/Cayenne"
)
stringr::str_replace(items, pattern = "([^/] $)", replacement = "Old\\1")
[1] "Cars/sedan/OldCamry" "Cars/sedan/OldXJ8" "Cars/SUV/OldCayenne"
uj5u.com熱心網友回復:
保留stringi函式作為替代方案。
如果您的資料框是“df”并且您的文本位于名為“text.
library(stringi)
df %>%
mutate(new_text=stringi::stri_replace_last_fixed(text, '/', '/Old '))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/425621.html
上一篇:學習成對交換節點
