2014-05-28 3 views
1

У меня есть кадр данных, который я создал с помощью импорта .dat Stata файл таким образом:R: кадр Экспорт данных в SPSS

data = read.dta("TEAdataSTATA2.dta") 

Затем я пишу data в текстовый файл:

write.table(b , "mydata.txt" , sep="\t") 

затем я использую текстовый файл, который я создал, чтобы создать файл SPSS таким способом:

write.foreign(b , "mydata.txt" , "DerLeew.sps" , package="SPSS") 

Однако я получаю сообщение об ошибке:

Error in writeForeignSPSS(df = list(studyid = c("P0008", "P0018", "P0031", : 
    I cannot abbreviate the variable names to eight or fewer letters 

Может ли кто-нибудь указать на проблему?

+2

Можете ли вы отредактировать результаты 'names (b)' в своем вопросе? Будет полезно специально прибить место, где все идет не так. – thelatemail

+0

Посмотрев на ответ Джонатана и код, я думаю, что его ответ правильный, и что ваш отказ обратиться к довольно конкретному сообщению об ошибке заслуживает понижения. –

+0

@BondedDust, если вы так думаете, возможно, я заслуживаю этого. – kolonel

ответ

6

SPSS используется только для поддержки имен переменных с 8 или менее символами. Похоже, код записывает эту более старую версию SPSS. Он пытается сократить сокращенные переменные, но в вашем случае это не удается.

Часть кода:

if (is.null(varnames)) { 
    varnames <- abbreviate(names(df), 8) 
    if (any(sapply(varnames, nchar) > 8)) 
     stop("I cannot abbreviate the variable names to eight or fewer letters") 
    if (any(varnames != names(df))) 
     warning("some variable names were abbreviated") 
} 

Вам может понадобиться переименовать переменные, чтобы быть короче перед вызовом этой функции, или попытаться найти реализацию, которая может записывать более новые форматы SPSS.

+0

Интересно, что код использует 'sapply (...)', когда будет работать только 'any (nchar (varnames)> 8)'. – thelatemail

7

Что делать, если вы пытаетесь

foreign:::writeForeignSPSS(b , "mydata.txt" , "DerLeew.sps" , 
    varnames=names(b)) 

Похоже, что этот метод будет обходить переменную усадку. Просто убедитесь, что ваша версия SPSS может ее открыть.

+0

Он отлично работает при экспорте данных, но, к сожалению, дает ошибки для моих коллег при импорте в SPSS. – Prradep

Смежные вопросы