Юлия: Экспорт результатов в таблицу: пример кода

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

Моя текущая практика сводится к следующему:

using DataFrames
function show_table(mp::ModelParameters, ms::ModelSolution)
    α = mp.α; δ = ms.δ;
    d = DataFrame(Name = @data(["α"]),
                  Description = @data(["alpha"]),
                  Value = @data([α])
    )
    push!(d, @data(["δ", "delta", δ]))
    return(d)
end

    2×3 DataFrames.DataFrame
    │ Row │ Name │ Description │ Value │
    ├─────┼──────┼─────────────┼───────┤
    │ 1   │ "α"  │ "alpha"     │ 1.01  │
    │ 2   │ "δ"  │ "delta"     │ 2.02  │

Превращение вышеуказанного в таблицу LaTeX потребует некоторой работы. Любой шаг в правильном направлении будет оценен по достоинству.

Я обнаружил многообещающий пакет с именем LaTeX.jl, который, похоже, не поддерживается и/или был заменен. Мечтаю иметь что-то вроде stargazer для R.

Я использовал юникодные греки в своем коде, например. α, который может быть скомпилирован с XeLaTeX, но решение, в котором α преобразуется в \alpha, тоже приветствуется. Альтернативой может быть ручная замена имен в моей удобной функции show_table, что не так уж и плохо.


person PatrickT    schedule 03.06.2017    source источник
comment
Я явно в ударе Julia/LaTeX: https://stackoverflow.com/questions/44120903/julia-docstrings-and-latex   -  person PatrickT    schedule 03.06.2017
comment
по моему (по общему признанию, очень личному) опыту, если вы имеете в виду очень конкретный документ, вместо того, чтобы искать общее решение, вы также можете сгенерировать точное .tex, которое вы хотите, записав в файл. Затем просто input скопируйте этот файл в свой основной .tex документ в нужном месте. Я делал это на протяжении всей своей диссертации (используя октаву), и это сработало очень хорошо. Не говоря уже о том, что вы можете затем поместить такие скрипты julia / octave в свой make-файл латекса, чтобы они автоматически перекомпилировались (например, в случае новых данных) и автоматически повторно вводились в ваш документ.   -  person Tasos Papastylianou    schedule 03.06.2017
comment
@TasosPapastylianou, да, это то, что я хотел бы сделать. У вас есть пример кода, как экспортировать, скажем, результаты регрессии в Julia.? Или пример для вывода моей таблицы выше? Спасибо.   -  person PatrickT    schedule 03.06.2017
comment
Вывод show в DataFrame представляет собой таблицу html - этот формат с | - это просто способ отображения julia repl. Юпитер справляется с этим по-другому. Я думаю, что stargazer просто создает html-таблицы, верно?   -  person Michael K. Borregaard    schedule 05.06.2017
comment
Разумный способ сделать это — экспортировать CSV, а затем использовать PGFPlotsTable.   -  person Lyndon White    schedule 06.06.2017


Ответы (3)


Обратите внимание, что экспорт LaTeX существует в DataTables.jl:

julia> using DataTables

julia> dt = DataTable(Fish = ["Suzy", "Amir"], Mass = [1.5, 2])
2×2 DataTables.DataTable
│ Row │ Fish │ Mass │
├─────┼──────┼──────┤
│ 1   │ Suzy │ 1.5  │
│ 2   │ Amir │ 2.0  │

julia> reprmime("text/latex", dt)
"\\begin{tabular}{r|cc}\n\t& Fish & Mass\\\\\n\t\\hline\n\t1 & Suzy &     1.5 \\\\\n\t2 & Amir & 2.0 \\\\\n\\end{tabular}\n"

Его можно легко перенести в DataFrames.

person Milan Bouchet-Valat    schedule 09.06.2017
comment
И теперь он поддерживается в DataFrames 0.11. - person Milan Bouchet-Valat; 30.11.2017
comment
Можно ли сохранить текстовый файл, не включая столбец с номерами строк? - person David Zentler-Munro; 09.03.2018

Вот пакет:

https://github.com/jmboehm/RegressionTables.jl

Я согласен с OP, что полезно иметь быстрое решение для вывода результатов регрессии. Возможно, я захочу потратить час на создание пользовательской таблицы на каком-то этапе проекта, но для начала и для быстрого обмена результатами идеально подходит stargazer for Julia (именно для этого и предназначен этот пакет).

person Florian Oswald    schedule 29.11.2017
comment
Спасибо за продолжение! - person PatrickT; 30.11.2017

person    schedule
comment
Другой альтернативой является использование Mustache.jl. - person elsuizo; 04.06.2017