简化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"
这个解决方案是好的,方便的,如果它工作作战指挥系统,但它是与平台相关的,所以它可能不是对每个人的工作(在我的Mac,它会导致'“钛\” ESTO“' )。 –
@OriolMirosa - 不知道,感谢您的评论。 – Sagar