R - 用 read_fwf 读取的特殊字符
R - Special characters reading with read_fwf
我正在尝试使用 readr 包中的 read_fwf 函数将一大串字符串转换为数据帧,我在使用特殊字符(如重音符号)时遇到一些麻烦。有人可以帮我吗?我不习惯处理编码:(
library(readr)
fw <- fwf_widths(c(2,13,2), col_names = c('A','B','C'))
x <- read_fwf('00StackOvérflow00\n',
col_positions = fw)
结果是:
A B C
00 "StackOv\xe9rflow" 00
如您所见,口音消失了...
谢谢!!
谢维
您可以通过 locale
将编码更改为 LATIN1
来解决此问题:
library(readr)
fw <- fwf_widths(c(2,13,2), col_names = c('A','B','C'))
x <- read_fwf('00StackOvérflow00\n',
col_positions = fw, locale = locale(encoding = 'LATIN1'))
返回:
# A tibble: 1 x 3
A B C
<chr> <chr> <chr>
1 00 StackOvérflow 00
我正在尝试使用 readr 包中的 read_fwf 函数将一大串字符串转换为数据帧,我在使用特殊字符(如重音符号)时遇到一些麻烦。有人可以帮我吗?我不习惯处理编码:(
library(readr)
fw <- fwf_widths(c(2,13,2), col_names = c('A','B','C'))
x <- read_fwf('00StackOvérflow00\n',
col_positions = fw)
结果是:
A B C
00 "StackOv\xe9rflow" 00
如您所见,口音消失了...
谢谢!!
谢维
您可以通过 locale
将编码更改为 LATIN1
来解决此问题:
library(readr)
fw <- fwf_widths(c(2,13,2), col_names = c('A','B','C'))
x <- read_fwf('00StackOvérflow00\n',
col_positions = fw, locale = locale(encoding = 'LATIN1'))
返回:
# A tibble: 1 x 3
A B C
<chr> <chr> <chr>
1 00 StackOvérflow 00