2016-04-06 46 views
1

我試圖運行下面的代碼。我想知道爲什麼gsub函數在這個輸入上不起作用。任何人都知道爲什麼以及如何處理這種情況?R,gsub不起作用

> text 

[1] <a href="https://itunes.apple.com/us/app/ubersocial-for-twitter/id396050119 mt=8&uo=4" rel="nofollow">UberSocial for Twitter on iOS</a> 
65 Levels: <a href="http://aktualpost.com" rel="nofollow">Aktualpost</a> ... 
> start = as.numeric(regexpr(">",text)[[1]])+1 
> start 
[1] 103 
> to_cut = substr(text,1,start-1) 
> to_cut 
[1] "<a href=\"https://itunes.apple.com/us/app/ubersocial-for-twitter/id396050119?mt=8&uo=4\" rel=\"nofollow\">" 
> new_text = gsub(to_cut,"",as.character(text)) 
> new_text 
[1] "<a href=\"https://itunes.apple.com/us/app/ubersocial-for-twitter/id396050119?mt=8&uo=4\" rel=\"nofollow\">UberSocial for Twitter on iOS</a>" 
+0

'text'是一個因素。首先將它轉換爲字符:'as.character(text)' – jogo

+1

這是因爲有'?'與'text'不匹配 – akrun

+0

這不是一個好問題的標題。 –

回答

1

「to_cut」中有?在「text」中找不到。如果我們解決這個問題,它應該能夠工作,即在「文本」中檢查「to_cut」中的?mtmt

gsub("^<a href=\"https://itunes.apple.com/us/app/ubersocial-for-twitter/id396050119 mt=8&uo=4\" rel=\"nofollow\">(.*)", "\\1", text) 
#[1] "UberSocial for Twitter on iOS</a>" 

目前尚不清楚該如何OP拿到 「to_cut」 與?

start = as.numeric(regexpr(">",text)[[1]])+1 
to_cut <-substr(text,1,start-1) 
to_cut 
#[1] "<a href=\"https://itunes.apple.com/us/app/ubersocial-for-twitter/id396050119 mt=8&uo=4\" rel=\"nofollow\">" 
gsub(to_cut, "", text) 
#[1] "UberSocial for Twitter on iOS</a>"