【问题标题】:R: Change character encoding of columns in data frameR:更改数据框中列的字符编码
【发布时间】:2016-06-29 11:33:05
【问题描述】:

我正在研究字符编码如何影响排序。我的问题是:

如何将数据帧的单列更改为不同的字符编码?

为了上下文,我将在底部添加几个额外的步骤。

1) 创建数据框:

d.enc <- data.frame( utf8 = c(" ", "_ ", " _"), 
                     mac = c(" ", "_ ", " _"), 
                     label = c("space", "underscore space", "space underscore") )

2) 转换为字符向量并尝试设置编码:

d.enc2$utf8 <- as.character(d.enc$utf8)
d.enc2$mac <- as.character(d.enc$mac)
d.enc2$label <- as.character(d.enc$label)

Encoding(d.enc2$utf8) <- "UTF-8"
Encoding(d.enc2$mac) <- "MACINTOSH"
Encoding(d.enc2$utf8)
# [1] "unknown" "unknown" "unknown"
Encoding(d.enc2$mac)
# [1] "unknown" "unknown" "unknown"

3) 这不是我所希望的。我本来期望的:

# [1] "UTF-8" "UTF-8" "UTF-8" and
# [1] "MACINTOSH" "MACINTOSH" "MACINTOSH"

4) 是否支持我想要的编码? (在 Mac 上运行)

temp <- iconvlist()
temp[399]
# [1] "UTF-8"
temp[338]
# [1] "MACINTOSH"

似乎支持它们。

5) 一旦我可以更改编码,我想执行以下操作以查看排序顺序如何更改:

library(dplyr)
arrange(d.enc2, desc(utf8))
arrange(d.enc2, desc(mac))

6) 我希望输出看起来像这样,但顺序不同,具体取决于用于排序的列:

  utf8 mac            label
1   _   _  underscore space
2    _   _ space underscore
3                     space

感谢您的任何提示!

【问题讨论】:

  • 你有解决办法吗?
  • @AbhinandanSatpute nope 仍然没有解决方案!

标签: r encoding utf-8 character-encoding iconv


【解决方案1】:

也许晚了,但我在以下位置看到了这个: R- Changing encoding of column in dataframe?

for (col in colnames(mydataframe)){
  Encoding(mydataframe[[col]]) <- "UTF-8"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2017-05-09
    • 2014-09-08
    相关资源
    最近更新 更多