Ошибка в nchar () при чтении в файл stata в R на Mac - PullRequest
1 голос
/ 12 июля 2011

Я изучаю R и просто пытаюсь читать в файле данных stata, но получаю ошибку ниже:

X <- Stata.file (Stata_File) </p>

Ошибка в nchar (varlabs): неверная многобайтовая строка 253

Несколько пользователей Mac здесь сталкиваются с этой ошибкой в ​​программе, но она отлично работает на ПК.Поиск этой ошибки в 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] сеточная статистика graphics grDevices использует наборы данных [7] методы base

другие прикрепленные пакеты: [1] memisc_0.95-33 MASS_7.3-13 решетка_0.19-30

Ответы [ 2 ]

4 голосов
/ 22 апреля 2013

Вот что у меня сработало. Вы можете заставить R распознавать каждый символ, введя следующую команду:

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

Теперь выполните предыдущую команду, и все должно быть в порядке.

0 голосов
/ 12 июля 2011

Кажется, что кодировка строк в файле - это не то, что думает программа ... Я думаю, файл был сгенерирован на ПК?Содержит ли он имена столбцов, отличных от ACII, или строки данных?

Поскольку у вас, кажется, кодировка UTF-8, и (в США / Западной Европе) ПК обычно имеют латинский-1, это может быть проблемой.Тогда я ожидал бы такой же проблемы в Linux (также UTF-8).

Возможные обходные пути: есть ли у метода Stata.file опция «кодирование»?Тогда вы можете попробовать 'latin1' и надеяться на лучшее ...

Другая возможность - запустить R с опцией --encoding = latin1.

...