我有一些包含非ASCII字符的数据,我希望将其作为rda
文件包含在R包中。当我在包裹上运行R CMD check
时,我收到警告:
Warning: found non-ASCII strings
阻止它在CRAN上被允许。
关于removing non-ASCII characters from data files有一个类似的问题,但我想保留非ASCII字符。
您可以抓取CSV数据here。我正在将其读入R并使用以下代码重新保存为rda
:
english_monarchs <- read.csv(
wherever_you_downloaded_the_file_to,
fileEncoding = "utf8",
na.strings = ""
)
save(english_monarchs, "english_monarchs.csv")
数据集的name
列包含非ascii值。
head(levels(english_monarchs$name))
## [1] "Adda" "Æðelbehrt"
## [3] "Æðelberht I" "Æðelberht II and Eardwulf"
## [5] "Æðelberht II, Ælfric and Eadberht I" "Æðelberht III"
根据写作R扩展的Encoding Issues部分中的(不太清楚)指导,我认为我应该将因子级别编码为UTF-8,但显而易见的方法不起作用:
Encoding(levels(english_monarchs$name)) <- "utf8" #each encoding still "unknown"
如何使数据足够便携以便在CRAN上接受?
答案 0 :(得分:12)
对我有用的是将编码声明为"latin1"
,然后使用iconv
转换为UTF-8。
Encoding(levels(english_monarchs$name)) <- "latin1"
levels(english_monarchs$name) <- iconv(
levels(english_monarchs$name),
"latin1",
"UTF-8"
)