gpt4 book ai didi

R:数据框中狭窄空间的错误编码和生成的 .csv

转载 作者:行者123 更新时间:2023-12-01 12:08:21 27 4
gpt4 key购买 nike

我抓取数据并收到一些字符变量,其中包含一个狭窄的不间断空格 (unicode U+202F)。如果结果字符变量在向量中,则它在 R 中显示良好。例如,test 的返回在控制台中显示为一个狭窄的空间:

test <- "variable1&#8239;variable2"
<br>
test
(这里是html代码,因为代码环境不显示狭窄的空间)

但是,如果我将向量添加到列表/数据框/tibble,它会显示为 variable1<U+202F>variable2 .如果我将此数据框保存为带有 fileEncoding = "UTF-8" 的 csv 文件并使用相应的编码打开它,仍然显示在观察中。我现在的解决方法是使用 gsub,但我想知道我做错了什么。

最佳答案

违规者是format.default:

test <- "variable1\u202Fvariable2"
print(test)
[1] "variable1 variable2"
format(test)
#[1] "variable1<U+202F>variable2"

formatformat.data.frame 调用,后者又被 print.data.frame 调用。

一个解决方案可能是定义一个字符方法:

format.character <- function(x, ...) x

DF <- data.frame(x = 1:5) #beware of stringsAsFactors
DF$test <- test
DF #spaces are actually thin spaces in R console
# x test
#1 1 variable1 variable2
#2 2 variable1 variable2
#3 3 variable1 variable2
#4 4 variable1 variable2
#5 5 variable1 variable2

显然,这种简单的方法会破坏依赖于其他format 参数的函数。

OTOH,你为什么要关心打印的空格有多窄?

关于R:数据框中狭窄空间的错误编码和生成的 .csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54402665/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com