1

我正在学习 R 并且只是尝试读取 stata 数据文件,但收到以下错误:

X <- Stata.file(Stata_File)

nchar(varlabs) 中的错误:无效的多字节字符串 253

此处的多个 Mac 用户在使用该程序时遇到此错误,但它在 PC 上运行良好。谷歌搜索这个错误似乎说它与 R 包有关,但我找不到解决方案。有任何想法吗?谢谢你的帮助!!

到错误点的R代码如下:

Root   <- "/Users/Desktop/R_Training"
PathIn <- paste(Root,"Data/Example_0",sep="/")

# The 2007 Dominican Republic household member file (96 MB) 
Stata_File <- "drpr51fl.dta"

# Load the memisc package:
library(memisc)

# Set the working directory:
setwd(PathIn)

# (1) Determine which variables we want:
# The Stata.file function (from memisc) reads the "header" 
#  of our Stata file so you can see what it contains
#  and choose the variables you want.
X <- Stata.file(Stata_File)

**Error in nchar(varlabs) : invalid multibyte string 253**

以下是我的会话信息:
R 版本 2.13.1 (2011-07-08) 平台:x86_64-apple-darwin9.8.0/x86_64 (64-bit)

语言环境:[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

附加的基础包:[1] grid stats graphics grDevices utils datasets [7] methods base

其他附加包:[1] memisc_0.95-33 MASS_7.3-13 lattice_0.19-30

4

2 回答 2

4

这对我有用。您可以通过发出以下命令强制 R 识别每个字符:

Sys.setlocale('LC_ALL','C')

现在运行上一个命令,一切都应该没问题。

于 2013-04-22T03:22:03.900 回答
0

似乎文件中字符串的编码不是程序认为的那样......我猜该文件是在PC上生成的?它是否包含非 ACII 列名或数据字符串?

由于您似乎有 UTF-8 编码,并且(美国/西欧)PC:s 通常有 latin-1,这可能是问题所在。我希望在 Linux 上出现同样的问题(也是 UTF-8)。

可能的解决方法:Stata.file 方法是否有“编码”选项?然后你可能会尝试'latin1'并希望最好......

另一种可能性是使用 --encoding=latin1 选项启动 R。

于 2011-07-12T19:38:10.273 回答