Я хочу импортировать 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")