2017-03-09 130 views
-2

我有一個數據表,此列如何從列變量刪除/提取字符串中的R

pay range 

₦5,000 - ₦10,000 
₦5,000 - ₦10,000 
₦5,000 - ₦10,000 
₦40,000 and above 
₦5,000 - ₦10,000 
₦5,000 - ₦10,000 
₦5,000 - ₦10,000 
₦5,000 - ₦10,000 
₦21,000 - ₦30,000 
₦11,000 - ₦20,000 
₦11,000 - ₦20,000 
₦5,000 - ₦10,000 
₦11,000 - ₦20,000 

我想在字符串中刪除某些字符。像這樣: old = 1111,000 - 20,000 new = 11,000 - 20,000

我該如何解決這個問題?謝謝

+0

道歉 – fosi

回答

0

我做了一個只有3行的數據框,但會起同樣的作用。 您的數據組件也可能有類「因素」,因此您應該將其更改爲字符類,如下所示,以便能夠使用gsub。 GSUB功能改變前一個與你在提出下一個。如果表被錯誤地格式化

payrange <- data.frame(c("₦5,000 - ₦10,000","₦5,000 - ₦10,000","₦5,000 - ₦10,000")) 
colnames(payrange) <- "range" 

payrange$range <- as.character(payrange$range) 

for (row in 1:dim(payrange)[1]){ 
payrange[row,] <- gsub("[â‚|]","",payrange[row,])} 
+0

嘿,謝謝。將數據組件從類因子更改爲字符類以使用gsub。這是唯一的原因嗎? – fosi

+0

gsub只能用於「單詞」,如字符或數字......等等。如果你的數據有'因素'類,gsub不能接受它們,因爲它們不是'單詞'。所以你應該先檢查班級,然後決定做什麼。所以是的,這就是爲什麼我變成了角色班。 – Mons2us

0

你可以使用正則表達式和stringr包來做這樣的事情很容易。我無法複製你粘貼的表格中的字符,但是這應該給你這個想法。

> df <- data.frame(pay_range = c("$5,000 - $10,000", "$21,000 - $30,000")) 
> df %>% mutate(pay_range2 = str_replace_all(pay_range, "\\$", "")) 
      pay_range  pay_range2 
1 $5,000 - $10,000 5,000 - 10,000 
2 $21,000 - $30,000 21,000 - 30,000 

注意,在"\\$"斜線在那裏,因爲$被理解爲正則表達式中的特殊字符。輸入?stringi,然後點擊鏈接stringi-search-regex查看其他字符是否被特殊對待。