#r #r-markdown #papaja
Вопрос:
*Отредактировано для упрощения примера
Я пытаюсь использовать apa_table (), чтобы включить таблицу критериев исключения включения в обзорную статью. Я уже сделал таблицу в excel, но я пытаюсь перейти к использованию Rstudio и Rmarkdown для всех моих академических работ.
Таблица выглядит так в excel
Включение | Исключение | Обоснование | |
---|---|---|---|
1. Публикация | Рецензируемый журнал | Источники, отличные от рецензируемых журналов (т. е. профессиональные публикации, серая литература) | Для обеспечения качества… |
2. Тип статьи | Исследования/Эмпирические статьи, представляющие методы и результаты, пригодные для анализа и синтеза | Статьи, описывающие вмешательства без представления результатов исследований (т. е. руководства по терапии) | Чтобы оценить доказательства для данного… |
3. Язык | Статьи, опубликованные или доступные на английском языке | Статьи, недоступные на английском языке | Нет доступа к услугам по переводу |
4. Тип программы | Программа, которая явно нацелена… | Вмешательства, которые не включают…. | Для обеспечения того, чтобы обзор был сосредоточен на… |
Мне гораздо удобнее в python, и с помощью сетчатого я решил, что могу просто передать фрейм данных Pandas в R и создать таблицу, но когда я это делаю, связанный документ показывает таблицу следующим образом:
Я также только что попытался использовать текст уценки, и результат… ближе
код, который я использовал, таков
df <- data.frame(inclusion <- c('Peer reviewed Journal articles',
'Research/Empirical articles presenting methods and results suitable for analysis and synthesis',
'Articles published or available in English',
'Programs that explicitly include...'),
exclusion <- c('Sources other than peer reviewed journals (i.e. professional publications)',
'Articles describing interventions without presenting research findings (i.e. theraputuc manuals)',
'Articles unavailable in English',
'Interventions that do not include a...'),
rationale <- c('To ensure the quality of included...',
'To evaluate only empirical evidence for a given program/intervention rather than...',
'No access to translation service',
'To ensure the review focuses on the outcomes of hero based interventions')
)
rownames(df) <- c('1. Publication type',
'2. Article type',
'3. Language',
'4. Program type')
colnames(df) <- c('Inclusion', 'Exclusion', 'Rationale')
library(papaja)
apa_table(
df
, caption = "Inclusion/Exclusion Criteria"
, note = NULL
)
Я также прочитал эту страницу с apa_table()
аргументами, и мне не повезло. Любая помощь будет признательна.
Комментарии:
1. Вы используете формат вывода PDF? Если это так, вы можете использовать настройки выравнивания по латексу. Для выравнивания абзацев вы можете использовать
p{4cm}
или что-то подобное. Здесь описаны и другие возможности: en.wikibooks.org/wiki/LaTeX/Tables#Text_wrapping_in_tables . Я бы продемонстрировал, но вы не включили ничего воспроизводимого…2. Я пытался отредактировать его, как и вы, позволит ли это вам продемонстрировать, что вы имеете в виду?
3. Извините, я не могу понять, что вы написали. Вы должны упростить пример: сбросьте все ненужные материалы Python и просто создайте фрейм данных в R, содержащий текст, который вы хотите отформатировать. Поместите все это в простой документ R Markdown, который может запустить любой желающий.
4. Теперь я преобразовал его в R, спасибо за совет.
5. Это не уценка R. Когда я помещаю его в документ с уценкой R, он не запускается. Вы не говорите
apa_table
, откуда взялась функция (я догадался оpapaja
пакете, но его нет в CRAN, так какую версию мне следует установить?), Когда я устанавливаю ее с Github, она выходит из строя из-за отсутствия среды LaTeX и т. Д. Я голосую за закрытие.
Ответ №1:
В руководстве papaja есть полезный трюк для подобных случаев: столбцы фиксированной ширины
apa_table(
df
, caption = "Inclusion/Exclusion Criteria"
, align = c("p{3cm}", rep("p{3.6cm}", ncol(df)))
, font_size = "footnotesize"
)
Хитрость заключается в том, чтобы указать фиксированную ширину для каждого столбца с помощью аргумента align
. Здесь я указываю 3 см для первого столбца (имена ваших строк) и 3,6 см для каждого соответствующего столбца ( p
средства, выровненные по вертикали в верхней части каждой ячейки таблицы, но есть и другие варианты). Просто чтобы сделать все это еще красивее, я использую шрифт поменьше, указав font_size = "footnotesize"
.
Комментарии:
1. ты герой высочайшего ранга. Спасибо.
2. Не могли бы вы указать мне на лучшее объяснение синтаксиса выравнивания? Что, если, например, я хочу, чтобы первый столбец был 3 см, второй-1 см по центру, а остальные-3,6? У меня возникли некоторые проблемы с синтаксическим анализом, чтобы получить больший контроль над таблицей.
Ответ №2:
Отвечаю на всякий случай, если это поможет кому-то, кто был в моем положении.
Основываясь на отзывах из комментариев выше, я нашел решение, которое работает для того, что мне нужно. Я уверен, что кто-то более компетентный в R и LaTeX мог бы предложить гораздо лучшее решение, чем это, но это сработало для меня.
Сначала я запустил apa_table()
функцию, чтобы взглянуть на вывод
df <- data.frame(inclusion <- c('Peer reviewed Journal articles',
'Research/Empirical articles presenting methods and results suitable for analysis and synthesis',
'Articles published or available in English',
'Programs that explicitly include...'),
exclusion <- c('Sources other than peer reviewed journals (i.e. professional publications)',
'Articles describing interventions without presenting research findings (i.e. theraputuc manuals)',
'Articles unavailable in English',
'Interventions that do not include a...'),
rationale <- c('To ensure the quality of included...',
'To evaluate only empirical evidence for a given program/intervention rather than...',
'No access to translation service',
'To ensure the review focuses on the outcomes of hero based interventions')
)
rownames(df) <- c('1. Publication type',
'2. Article type',
'3. Language',
'4. Program type')
colnames(df) <- c('Inclusion', 'Exclusion', 'Rationale')
apa_table(
df
, caption = "Inclusion/Exclusion Criteria"
, note = NULL
)
это приводит к выходу
«nnnbegin{таблица}[tbp]nnbegin{центр}nbegin{трехчастная таблица}nnзаголовок{заголовок теста}nnbegin{табличный}{llll}ntoprulen amp; многоколоночный{1}{c}{включение…. c..Рецензирование.Journal.articles….Research.Empirical.articles.presenting.methods.and.results.suitable.for.analysis.and.synthesis…} amp; multicolumn{1}{c}{exclusion….c..Sources.other.than.peer.reviewed.journals..i.e..professional.publications….} amp; multicolumn{1}{c}{rationale….c..To.ensure.the.quality.of.included…….To.evaluate.only.empirical.evidence.for.a.given.program.intervention.rather.than……}\nmidrulen1. Тип публикации и рецензируемые журнальные статьи и источники, отличные от рецензируемых журналов (т. е. профессиональные публикации), и для обеспечения качества включенных…\n2. Тип статьи и исследования/Эмпирические статьи, представляющие методы и результаты, подходящие для анализа и синтеза, и Статьи, описывающие вмешательства без представления результатов исследований (т. е. руководств по терапии) и для оценки только эмпирических доказательств для данной программы/вмешательства, а не…\n3. Язык и Статьи, опубликованные или доступные на английском языке, и Статьи, недоступные на английском языке, и нет доступа к службе перевода\n4. Тип программы и Программы, которые явно включают… и Мероприятия, которые не включают… и Для обеспечения того, чтобы обзор был сосредоточен на результатах, основанных на герое interventions\nbottomrulenend{tabular}nnend{threeparttable}nend{center}nnend{table}nnn»
Затем я использовал эту полезную страницу вместе с ресурсами, предоставленными в комментариях к исходному вопросу, чтобы отредактировать эту стену текста в раздел rmarkdown tex
begin{table}[tbp]
begin{center}
begin{threeparttable}
caption{test caption}
begin{tabular}{p{4cm} p{4cm} p{4cm} p{4cm}}
hline
toprule amp; multicolumn{1}{c}{Inclusion} amp; multicolumn{1}{c}{Exclusion} amp; multicolumn{1}{c}{Rationale}\
hline
midrule 1. Publication type amp; Peer reviewed Journal articles amp; Sources other than peer reviewed journals (i.e. professional publications) amp; To ensure the quality of included...\
2. Article type amp; Research/Empirical articles presenting methods and results suitable for analysis and synthesis amp; Articles describing interventions without presenting research findings (i.e. theraputuc manuals) amp; To evaluate only empirical evidence for a given program/intervention rather than...\
3. Language amp; Articles published or available in English amp; Articles unavailable in English amp; No access to translation service\
4. Program type amp; Programs that explicitly include... amp; Interventions that do not include a... amp; To ensure the review focuses on the outcomes of hero based interventions\
bottomrule
hline
end{tabular}
end{threeparttable}
end{center}
end{table}
По сути, это было просто удаление юникода из строкового вывода, чтобы превратить его в код LaTeX, а затем редактирование кода latex для получения желаемого результата.
Я уверен, что этот ответ так же плох, как и вопрос, но, надеюсь, он кому-то поможет.
[