在数据框中更改列的字符编码。

8
我正在研究字符编码对排序的影响。我的问题是:
如何将数据框中的单个列更改为不同的字符编码?
为了提供背景,我在底部包含了一些额外的步骤。
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

感谢任何技巧!


你有找到任何解决方案吗? - Abhinandan Satpute
@AbhinandanSatpute 没有,仍然没有解决方案! - Bobby
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接