R中write.table的格式问题,utf-8原始编码
Format problem of the write.table in R, utf-8 original encode
write.table
有问题。 chr2
在控制台中正确显示,但在保存的 txt 文件中显示失败。
> chr1 = chr2 = rep(NA, 8)
> for(i in 1:8){
+ chr1[i] = letters[i]
+ chr2[i] = intToUtf8(10240+2^(i-1))
+ }
>
> chr1
[1] "a" "b" "c" "d" "e" "f" "g" "h"
> chr2
[1] "⠁" "⠂" "⠄" "⠈" "⠐" "⠠" "⡀" "⢀"
>
write.table(cbind(chr1, chr2), file = "chr2.txt")
请问如何让txt文件的打印方式和控制台完全一样?谢谢!
我的 OS 和 R 版本:
version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 4
minor 0.3
year 2020
month 10
day 10
svn rev 79318
language R
version.string R version 4.0.3 (2020-10-10)
nickname Bunny-Wunnies Freak Out
---------------- 2006 年 6 月更新----------------
其实我真正想做的是保存一张“txt图片”,如:
⣿⣿⣿⣿⣿⣿⣿⣿⣿⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣣⣿ ⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⢀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢻⣿⣿⣿⣿⣿⣿⣿⣣⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⡟⠀⠻⣿⣦⢀⠘⣿⣿⣿⣿⣿⣿⡏⢸⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⣿⣣⣿⣿⣿⣿⣣⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣦⡀⠈⠻⣧⢀⠘⢿⡟⢠⣤⣌⡇⢀⣴⣅⣤⣄⠙⡟⢡⣤⣈⢸⢸⠟⢠⣾⣿⣿⣿⣿⣣⣿⣿
⣿⣿⣿⣿⡿⠛⢿⣿⣄⢀⠈⢳⢀⢸⣧⠇⢸⣿⠛⣉⣉⢀⠁⣾⣿⣇⢀‡⢻⣿⣿⣿⣿⣿⣣⣿⠇⢸⣿⠛⣉⣉⢀⢻⣿⣿⣿⣿⣿⣣
⣿⣿⣿⣿⣷⣦⣀⢀⠈⠙⠷⣄⢀⣽⣿⡟⠻⠿⠃⣠⠘⢿⢀⠿⠟⢀⣇⠘⠿⠛⢸⣷⢀⢻⣿⣿⣿⣿⣣⣿
⣿⣿⣿⡿⠛⠻⠿⣿⣦⣄⠈⣿⣿⣿⣿⣶⣶⣾⣿⣷⣾⣷⣶⣾⣶⣿⣷⣶⣾⣷⣾⣿⣷⣾⣿⣿⣿⣷⣾⣷⣶⣾⣶⣿⣷⣶⣾⣷⣾⣿⣷⣾⣿⣿⣿⣿⣣⣿
⡿⠿⣿⣧⣄⣀⢀⢀⢀⠀⠙⢺⣿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⢀⡇⢀⣿⣿⣣⣣⣿⣿⣿⣿⣿
⡇⢀⣿⡿⠿⠿⠿⠿⠶⠶⠤⣼⣿⢀⣿⡿⠋⠉⠛⡏⣿⡏⡟⡏⠉⡟⡟⠋⠻⡟⠋⠉⠃⢀⠙⡇⢀⣿⠟⠢⠠⠠⠻
⡇⢀⣿⣇⣀⣀⣀⣀⣀⣀⣀⣿⣿⢀⣿⠁⢠⣶⢀⢰⢀⢹⢀⢸⢀⠐⠓⢀⠁⢀⣰⣶⡇⢀⣶⢇⢀⣿⢀⢰⢠⡠⢀
⡇⢀⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⢀⣿⡀⠘⠿⢀⢸⡆⢀⢀⣿⢀⠰⡶⠶⡆⢀⣿⣿⡇⢀⣿⡇⢀⢿⢀•⠸⠇⢀
⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣿⣷⣄⣀⣠⣿⣿⣀⣸⣿⣦⣀⣀⣠⣧⣀⣿⣿⣇⣀⣿⣷⣄⣀⣦⣀⣀⣴⣿⣆⣀⣿⣇⣀⣿
我已经把我的代码和示例图片上传到GitHub:
https://github.com/CarltonChen/TxtDotPic
请看
不幸的是,将两个向量强制转换为 data.frame 并将其写为 table 已经将字符转换为 unicode 引用。你可以看到当你使用 data.frame(chr1,chr2)
.
坦率地说,我不知道如何将 unicode 符号写入 tables,但如果您能够组成文件的行(将值与 '\t'
连接起来),则可以编写它们使用 writeLines()
到具有本机编码的文件:
f = file("specialchar.txt",open="w",encoding="native.enc")
writeLines(paste(chr1,chr2,sep='\t'),con=f, useBytes=T)
close(f)
当我这样做时,我得到以下结果:
write.table
有问题。 chr2
在控制台中正确显示,但在保存的 txt 文件中显示失败。
> chr1 = chr2 = rep(NA, 8)
> for(i in 1:8){
+ chr1[i] = letters[i]
+ chr2[i] = intToUtf8(10240+2^(i-1))
+ }
>
> chr1
[1] "a" "b" "c" "d" "e" "f" "g" "h"
> chr2
[1] "⠁" "⠂" "⠄" "⠈" "⠐" "⠠" "⡀" "⢀"
>
write.table(cbind(chr1, chr2), file = "chr2.txt")
请问如何让txt文件的打印方式和控制台完全一样?谢谢!
我的 OS 和 R 版本:
version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 4
minor 0.3
year 2020
month 10
day 10
svn rev 79318
language R
version.string R version 4.0.3 (2020-10-10)
nickname Bunny-Wunnies Freak Out
---------------- 2006 年 6 月更新----------------
其实我真正想做的是保存一张“txt图片”,如:
⣿⣿⣿⣿⣿⣿⣿⣿⣿⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣣⣿ ⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⢀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢻⣿⣿⣿⣿⣿⣿⣿⣣⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⡟⠀⠻⣿⣦⢀⠘⣿⣿⣿⣿⣿⣿⡏⢸⣿⣿⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿⣿⣿⣿⣿⣿⣣⣿⣿⣿⣿⣣⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣦⡀⠈⠻⣧⢀⠘⢿⡟⢠⣤⣌⡇⢀⣴⣅⣤⣄⠙⡟⢡⣤⣈⢸⢸⠟⢠⣾⣿⣿⣿⣿⣣⣿⣿ ⣿⣿⣿⣿⡿⠛⢿⣿⣄⢀⠈⢳⢀⢸⣧⠇⢸⣿⠛⣉⣉⢀⠁⣾⣿⣇⢀‡⢻⣿⣿⣿⣿⣿⣣⣿⠇⢸⣿⠛⣉⣉⢀⢻⣿⣿⣿⣿⣿⣣ ⣿⣿⣿⣿⣷⣦⣀⢀⠈⠙⠷⣄⢀⣽⣿⡟⠻⠿⠃⣠⠘⢿⢀⠿⠟⢀⣇⠘⠿⠛⢸⣷⢀⢻⣿⣿⣿⣿⣣⣿ ⣿⣿⣿⡿⠛⠻⠿⣿⣦⣄⠈⣿⣿⣿⣿⣶⣶⣾⣿⣷⣾⣷⣶⣾⣶⣿⣷⣶⣾⣷⣾⣿⣷⣾⣿⣿⣿⣷⣾⣷⣶⣾⣶⣿⣷⣶⣾⣷⣾⣿⣷⣾⣿⣿⣿⣿⣣⣿ ⡿⠿⣿⣧⣄⣀⢀⢀⢀⠀⠙⢺⣿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⢀⡇⢀⣿⣿⣣⣣⣿⣿⣿⣿⣿ ⡇⢀⣿⡿⠿⠿⠿⠿⠶⠶⠤⣼⣿⢀⣿⡿⠋⠉⠛⡏⣿⡏⡟⡏⠉⡟⡟⠋⠻⡟⠋⠉⠃⢀⠙⡇⢀⣿⠟⠢⠠⠠⠻ ⡇⢀⣿⣇⣀⣀⣀⣀⣀⣀⣀⣿⣿⢀⣿⠁⢠⣶⢀⢰⢀⢹⢀⢸⢀⠐⠓⢀⠁⢀⣰⣶⡇⢀⣶⢇⢀⣿⢀⢰⢠⡠⢀ ⡇⢀⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⢀⣿⡀⠘⠿⢀⢸⡆⢀⢀⣿⢀⠰⡶⠶⡆⢀⣿⣿⡇⢀⣿⡇⢀⢿⢀•⠸⠇⢀ ⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣿⣷⣄⣀⣠⣿⣿⣀⣸⣿⣦⣀⣀⣠⣧⣀⣿⣿⣇⣀⣿⣷⣄⣀⣦⣀⣀⣴⣿⣆⣀⣿⣇⣀⣿
我已经把我的代码和示例图片上传到GitHub:
https://github.com/CarltonChen/TxtDotPic
请看
不幸的是,将两个向量强制转换为 data.frame 并将其写为 table 已经将字符转换为 unicode 引用。你可以看到当你使用 data.frame(chr1,chr2)
.
坦率地说,我不知道如何将 unicode 符号写入 tables,但如果您能够组成文件的行(将值与 '\t'
连接起来),则可以编写它们使用 writeLines()
到具有本机编码的文件:
f = file("specialchar.txt",open="w",encoding="native.enc")
writeLines(paste(chr1,chr2,sep='\t'),con=f, useBytes=T)
close(f)
当我这样做时,我得到以下结果: