简化R中饰品的字符

问题描述:

我在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函数的字符串,以便我可以得到一些有用的输出。

基于答案this question,你可以这样做:

artistName <- "Tiësto" 

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

removeOrnaments(artistName) 

# [1] "Tiesto" 

下面是我发现的,并可能为你工作。更简单和方便地应用于任何形式的数据。

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

这个解决方案是好的,方便的,如果它工作作战指挥系统,但它是与平台相关的,所以它可能不是对每个人的工作(在我的Mac,它会导致'“钛\” ESTO“' )。 –

+0

@OriolMirosa - 不知道,感谢您的评论。 – Sagar