在數據幀號df
柱c1
具有格式化這樣負的數值:R中使用正則表達式來改變在格式化
(1,000,000)
我想刪除從括號負值在df$c1
,以便返回:
-10000
我中的R用以下命令:df$c1<-gsub('^\\($','-',gsub(',','',df$c1))
但輸出沒有返回期望的效果。
如何在此R命令中調整正則表達式以返回正確的格式?
在數據幀號df
柱c1
具有格式化這樣負的數值:R中使用正則表達式來改變在格式化
(1,000,000)
我想刪除從括號負值在df$c1
,以便返回:
-10000
我中的R用以下命令:df$c1<-gsub('^\\($','-',gsub(',','',df$c1))
但輸出沒有返回期望的效果。
如何在此R命令中調整正則表達式以返回正確的格式?
豈不改爲:
df$c1<-sub('^\\(', '-' , sub('\\)$','',df$c1))
這消除了導致左括號,用減號代替它們,並刪除尾隨右括號。您的版本堅持認爲'外部'模式正好是(
,我懷疑它會匹配任何項目,並且正在使用'內部'調用刪除逗號。我改爲sub
,因爲只有每個元素都需要這樣做。
gsub("\\((.+)\\)", "-\\1", "(1,000,000)")
# [1] "-1,000,000"
該命令將替換結束括號')',但它不會用' - '負號替換開頭括號。也許在我正在應用這個的列中有一些空白區域,並且它將它扔掉了? – AME
也許吧。如何繼續取決於您希望更換測試的嚴格程度。你可以從模式中刪除'^',它只是用一個減號代替第一個左邊的paren。 –