2017-08-15 26 views
-1

我在Spotify API中使用了一些音樂藝術家的名字。由於字符的重音,我在處理某些字符串時遇到了一些問題。我對字符編碼沒有太多的瞭解。簡化R中飾品的字符

我會在下面提供更多的上下文,但基本上我想知道在R中是否有一種方法來「簡化」具有裝飾物的字符。

從本質上講,如果有一個功能將會把c("ë", "ö")作爲輸入,並且返回c("e", "o"),從字符中刪除裝飾物,我感興趣。


我不認爲我可以創建,因爲與API認證的問題的可重複的例子,但對於某些情況下,當我嘗試運行:

artistName <- "Tiësto" 
GET(paste0("https://api.spotify.com/v1/search?q=", 
      artistName, 
      "&type=artist"), 
    config(token = token)) 

下被髮送到API:

https://api.spotify.com/v1/search?q=Tiësto&type=artist 

回到我400 bad request錯誤。我試圖改變我傳遞給GET函數的字符串,以便我可以得到一些有用的輸出。

回答

0

基於答案this question,你可以這樣做:

artistName <- "Tiësto" 

removeOrnaments <- function(string) { 
    chartr(
    "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ", 
    "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy", 
    string 
) 
} 

removeOrnaments(artistName) 

# [1] "Tiesto" 
2

下面是我發現的,並可能爲你工作。更簡單和方便地應用於任何形式的數據。

> artistName <- "Tiësto" 
> iconv(artistName, "latin1", "ASCII//TRANSLIT") 
[1] "Tiesto" 
+0

這個解決方案是好的,方便的,如果它工作作戰指揮系統,但它是與平臺相關的,所以它可能不是對每個人的工作(在我的Mac,它會導致'「鈦\」 ESTO「' )。 –

+0

@OriolMirosa - 不知道,感謝您的評論。 – Sagar