R haven::write_dta() длинные строки (strL)
Мне нужно обработать файл.json, содержащий logdata, в файл.dta в R с помощью haven() (данные, содержащие тип, метки и все в конце). Сам файл содержит несколько строковых переменных, превышающих 5000 и более символов. К сожалению, функция haven (), похоже, не может написать символьные строки такой длины. Например:
library(haven)
longFun <- function(n) {
do.call(paste0, replicate(5000, sample(LETTERS, n, TRUE), FALSE))
}
longString <- data.frame(V1 = longFun(1), stringsAsFactors = F)
write_dta(longString, paste0(tempdir(), "\\longString.dta"))
выдает следующую ошибку:
Ошибка в write_dta_(data, normalizePath(path, mustWork = FALSE), version = stata_file_format(version)): Ошибка записи: предоставленное строковое значение было длиннее доступного размера хранилища указанного столбца.
Этот поток частично дублирует файлы.dta Save с длинными строками в R, но предлагаемое решение переключиться на readstata13::save.dta13() на данном этапе не является предпочтительным.
Разделение строк на разные столбцы также не является предпочтительным, поскольку они могут сильно различаться по длине, что может привести к взрыву столбцов в наборе данных. Кроме того, определить разумную точку отсечки отнюдь не просто.
Поскольку Stata (начиная с Stata 13) поддерживает длинные строковые переменные (переменная strL), я хотел спросить, можно ли каким-либо образом записать strL-переменные с помощью гавани?
Bests