1

私はRを学んでおり、単にstataデータファイルを読み込もうとしていますが、以下のエラーが発生しています:

X <- Stata.file(Stata_File)

nchar(varlabs) のエラー: 無効なマルチバイト文字列 253

複数の Mac ユーザーがこのプログラムでこのエラーに遭遇していますが、PC では問題なく動作します。このエラーの Google 検索では、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 ビット)

ロケール: [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-13lattice_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は通常latin-1を使用しているため、それが問題になる可能性があります. その場合、Linuxでも同じ問題が発生すると予想されます(UTF-8でも)。

考えられる回避策: Stata.file メソッドには「エンコード」オプションがありますか? 次に、「latin1」を試して、最高の結果を期待してください...

別の可能性は、 --encoding=latin1 オプションを指定して R を開始することです。

于 2011-07-12T19:38:10.273 に答える