Я ищу способ сохранить текст в формате CSV в строку в JRI (интерфейс Java/R). В настоящее время единственным известным мне способом записи CSV-файлов является:
write.csv(MyData, file = "MyData.csv")
Который форматирует MyData
в CSV и записывает его в файл CSV. Однако мое приложение не использует файлы, поэтому мне нужно установить вывод write.csv
в переменную, а не в файл.
Я попробовал этот фрагмент кода, который, согласно документации, просто форматирует data.frame
в строку.
REXP s = Rutils.rengine.eval("write_csv(foo, sep = ',', quote = TRUE, row.names = FALSE, col.names = FALSE)");
System.out.println(s);
будучи Rutils
классом, в котором я храню свои Rengine
и foo
фрейм данных, который я пытаюсь отформатировать (который содержит правила ассоциации, извлеченные из функции arules
' apriori
.
Однако я получаю null
в качестве вывода каждый раз, когда запускаю файл.
Есть ли способ сделать это?
write.csv
записывает содержимоеdata.frame
в файл.data.frame
— это ваш объект R. Возможно, вам следует предоставить более репрезентативный пример кода, демонстрирующий, что вы пытаетесь сделать. - person Maurits Evers   schedule 11.04.2019csv_content <- capture.output(write.csv(MyData, file = stdout()))
- person amatsuo_net   schedule 11.04.2019null
в своем выводе Java. - person xvlaze   schedule 11.04.2019Rutils.rengine.eval("capture.output(write.csv(MyData, file = stdout()))"); System.out.println(s)
? - person amatsuo_net   schedule 11.04.2019null
тоже. :( - person xvlaze   schedule 11.04.2019REXP s = Rutils.rengine.eval("capture.output(write.csv(MyData, file = stdout()))"); System.out.println(s.asString());
по-прежнему не работает? - person amatsuo_net   schedule 11.04.2019