我正在嘗試使用以下列清理資料集:ltaCpInfoDF$weekdays_rate_1
對于某些行,我想這樣做:
輸入:每日(上午 7 點至晚上 11 點):1.20 美元;輸出:上午 7 點至晚上 11 點:1.20 美元
括號內的值可以是行的不同時間。
最初,我正在考慮按部分洗掉,例如先用 gsub 洗掉“Daily(”,然后再洗掉“)”。但是,我似乎面臨著這個問題。
ltaCpInfoDF$weekdays_rate_1 <- gsub("Daily(", "", ltaCpInfoDF$weekdays_rate_1)
這是顯示的錯誤:
Error in gsub("Daily(", "", ltaCpInfoDF$weekdays_rate_1) :
invalid regular expression 'Daily(', reason 'Missing ')''
In addition: Warning message:
In gsub("Daily(", "", ltaCpInfoDF$weekdays_rate_1) :
TRE pattern compilation error 'Missing ')''
有人可以與我分享更好的方法嗎?先感謝您!
uj5u.com熱心網友回復:
使用sub與捕獲組:
input <- "Daily(7am-11pm): $1.20"
output <- gsub("\\S \\s*\\((.*?)\\)", "\\1", input)
output
[1] "7am-11pm: $1.20"
uj5u.com熱心網友回復:
我們可以在不捕獲的情況下使用
gsub("^[^(] \\(|\\)", "", str1)
[1] "7am-11pm: $1.20"
資料
str1 <- "Daily(7am-11pm): $1.20"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/333100.html
