r - 从 R 导出西里尔字符?
问题描述
我有一个数据集,其中一列包含俄语单词:
raw_data2 = structure(list(word = c("абрикос",
"автомобиль",
"аист",
"ананас",
"апрель",
"атака",
"баклажан"),
subject_nr = c(3L, 21L, 12L, 17L, 8L, 1L, 17L),
acc = c(98.976109215, 91.8803418803, 94.8979591837, 94.5273631841, 94.4444444444, 94.5355191257, 94.3661971831)),
row.names = c(1L, 100L, 200L, 300L, 400L, 500L, 600L),
class = "data.frame")
当我在 RStudio 中查看文件时,没有问题:
但是,当我将数据导出到表格中以便在 Excel 中进一步使用它们时,我会得到这个 UTF-messs,Excel 无法将其转换回俄语单词(即使在数据导入期间选择了 UTF-8):
"word";"subject_nr";"acc"
"<U+0430><U+0431><U+0440><U+0438><U+043A><U+043E><U+0441>";3;98,976109215
"<U+0430><U+0432><U+0442><U+043E><U+043C><U+043E><U+0431><U+0438><U+043B><U+044C>";21;91,8803418803
"<U+0430><U+0438><U+0441><U+0442>";12;94,8979591837
"<U+0430><U+043D><U+0430><U+043D><U+0430><U+0441>";17;94,5273631841
"<U+0430><U+043F><U+0440><U+0435><U+043B><U+044C>";8;94,4444444444
"<U+0430><U+0442><U+0430><U+043A><U+0430>";1;94,5355191257
"<U+0431><U+0430><U+043A><U+043B><U+0430><U+0436><U+0430><U+043D>";17;94,3661971831
保存表格时,有什么方法可以强制 R 用相应的西里尔字母替换这些字符串?它当然“知道”这些字母是什么,因为它会在预览中显示它们。我使用以下代码(不起作用):
write.table(raw_data2,
file = "raw_data2.csv",
append = FALSE,
quote = TRUE,
sep = ";",
eol = "\n",
na = "NA",
dec = ",",
row.names = FALSE,
col.names = TRUE,
qmethod = c("escape", "double"),
fileEncoding = "UTF-8")
解决方案
如果您将其写入xlsx
文件,对我来说效果很好。
openxlsx::write.xlsx(raw_data2, 'temp.xlsx')
推荐阅读
- gitlab-ci - 如何将多行字符串存储在gitlab yaml中的变量中
- android - Flutter AppsFlyer 为 Android 异常构建
- node.js - 如何在语音频道中奖励用户 XP?
- swift - NSSharingService.perform() 与发送到照片
- kubernetes - Kubernetes HPA 不工作:无法获取指标
- python - 将字符串中的数字转换为英文单词
- python - 如何将类似日期时间的字符串转换为毫秒
- delphi - FireDAC 将 Access 文件中的数据加载到 DBGrid 中,而不使用拖放控件
- python-3.x - 设置 nginx.conf 以根据原始 uri 路由 2 个不同的本地 wsgi
- visual-c++ - 如何将 std::variant 作为 VARIANT* 传递给 ExecWB?