Импорт данных R в Python проблема с NA и data.table - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу импортировать data.table из R, сохраненного с помощью saveRDS в python. Я нашел пакет в python pyreadr, который работает нормально, но затем он не работал для некоторых моих data.table, которые пропали без вести. Мне не удалось найти похожие вопросы, и я довольно новичок в python.

MWE для создания некоторых данных в R

library(data.table)    
df<-data.table(Name="Heilbronn", lon=9.208, lat=49.124, type=c(NA, "bus_station"), north=c(NA, 4.5))
saveRDS(df,"test_dt.r")
saveRDS(na.omit(df),"test_dt_naomit.r")
df<-data.frame(Name="Heilbronn", lon=9.208, lat=49.124, type=c(NA, "bus_station"), north=c(NA, 4.5))
saveRDS(df,"test_df.r")

Поэтому я пытаюсь прочитать это в python

import pyreadr
pyreadr.read_r("test_dt.r")

Не работает, и я получаю следующая ошибка

Traceback (most recent call last):

  File "<ipython-input-57-383514f95bcb>", line 1, in <module>
    result = pyreadr.read_r("../test.r")

  File "C:\ProgramData\Anaconda3\lib\site-packages\pyreadr\pyreadr.py", line 47, in read_r
    parser.parse(path)

  File "pyreadr\librdata.pyx", line 117, in pyreadr.librdata.Parser.parse

  File "pyreadr\librdata.pyx", line 142, in pyreadr.librdata.Parser.parse

LibrdataError: Unable to allocate memory

Следующие две работы, и я предполагаю, потому что в первом случае нет NA, а во втором это только data.frame

pyreadr.read_r("test_dt_naomit.r")
pyreadr.read_r("test_df.r")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...