Ошибка в write_dta: предоставленное строковое значение длиннее доступного размера хранилища указанного столбца - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь экспортировать свою таблицу данных из R Studio в формат dta. Я использую функцию write_dta из библиотеки-убежища в R и получаю следующую ошибку:

Предоставленное значение строки было длиннее, чем доступный размер хранилища указанного столбца.

Я совсем новичок в R и Stata и не понимаю, что это значит и что мне с этим делать.

1 Ответ

2 голосов
/ 02 мая 2020

Похоже, у вас есть фрагмент длинного текста в вашем data.frame. У write_dta есть известные проблемы обработки длинных строк (https://github.com/tidyverse/haven/issues/437). Вы можете обрезать строки в вашем data.frame следующим образом:

df = as.data.frame(apply(YOUR_DATA, 2, function(x){
     if(class(x) == 'character') substr(x, 1, 128) else x}))

А затем попробуйте write_dta(df). Максимальная длина 128 символов должна быть безопасной, но более новые версии Stata могут обрабатывать намного больше.

...