Я думаю, что самый простой способ - пройти через то, что заменено.Я предполагаю, что вы не хотите терять негативность, предложенную паранами, поэтому мы сделаем два шага:
s <- c("($2,345)", "$3,500", "$5,600", "($3,234)")
gsub("[$),]", "", s)
# [1] "(2345" "3500" "5600" "(3234"
Это удалит большую часть мусора (который мы не хотели /нужно сохранить), теперь давайте разберемся с ведущей левой пареню:
gsub("^\\s*[(]", "-", gsub("[$),]", "", s))
# [1] "-2345" "3500" "5600" "-3234"
Отсюда, если необходимо, вы можете конвертировать в numeric
:
as.numeric(gsub("^\\s*[(]", "-", gsub("[$),]", "", s)))
# [1] -2345 3500 5600 -3234
Это неочень устойчив к неправильным формам струн.Например, хотя я ищу (и удаляю) начальное место для левой части, все остальное будет проблемой.