Невозможно отправить таблицу pander без изменений в Gmail с помощью sendmailR

Пожалуйста, найдите ниже мой код, который я использую, чтобы поделиться своим анализом (dataframe) с моим другом в R. Я использую пакет sendmailR и pander:

library(sendmailR)

from <- "<[email protected]>"
to <- "<[email protected]>"
subject <- "Important Report of the Day!!"
body <- "This is the result of the test:"                     
mailControl=list(smtpServer="ASPMX.L.GOOGLE.COM")
#-----------------------------------------------------
msg_content <- mime_part(paste('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body><pre>', paste(pander_return(pander(vvv, style="multiline")), collapse = '\n'), '</pre></body>
</html>'))

msg_content[["headers"]][["Content-Type"]] <- "text/html"

sendmail(from=from,to=to,subject=subject,msg=msg_content,control=mailControl)

Проблема в том, что в почте таблица разбита на две части (таблица из 8 столбцов и таблица из 4 столбцов) PFB образец изображения

введите здесь описание изображения

Как мне изменить свой код, чтобы моя таблица из 12 столбцов осталась нетронутой.

После добавления этой строки

panderOptions('table.split.table', Inf)

Это электронное письмо, которое я получаю введите здесь описание изображения


person AkshitR    schedule 16.03.2016    source источник


Ответы (1)


Вам необходимо увеличить или отключить максимальную ширину по умолчанию для результирующей таблицы уценки через аргумент split.tables для pandoc.table (который также можно использовать с вызовом pander, который в конце концов передаст этот аргумент в pandoc.table) или обновить глобальные параметры через panderOptions.

Краткий пример обновления вашего вызова pander:

paste(pander_return(pander(vvv, split.tables = Inf)), collapse = '\n')

Или установите это глобально для всех будущих вызовов pander:

panderOptions('table.split.table', Inf)
person daroczig    schedule 16.03.2016
comment
Спасибо за ответ. Я получил стол целым, но он облажался. Несколько столбцов объединяются. Как я могу настроить их, изменив их размер и автоподгонку столбца. - person AkshitR; 16.03.2016
comment
@AkshitR, вот почему у нас разумное правило по умолчанию не печатать таблицы с более чем 80 символами, как на старых добрых терминалах VT100 :) Но помимо шуток, это будет зависеть от того, как ваш браузер / почтовый клиент отображает широкий тег <pre>. Я думаю, вы хотите добавить в это электронное письмо таблицу HTML вместо дословной таблицы уценки — посмотрите, например, xtable, чтобы сгенерировать HTML вместо уценки с помощью pander (и я предлагаю это, несмотря на то, что я твердо привержен к последнему пакету). - person daroczig; 16.03.2016