Выражение столбца в data.table разрывается в easyHtmlReport, работает в простом knitr
Я пытаюсь сделать некоторые data.table
манипуляции в Rmd
файл. Файл прекрасно работает с knit
, Тем не менее, когда я запускаю его через easyHtmlReport
, это не работает: мой data.table by
выражения терпят неудачу с 'Ошибка: объект' ИД пользователя 'не найден', где userId
является одним из столбцов в моей таблице данных, которую я использую в j
выражение. Нерабочее выражение:
expt.daystat = expt.users[,list(count=length(userId)),
keyby=list(day, status)]
Как я уже сказал, он отлично работает в простой knit
но врывается easyHtmlReport
,
2 ответа
@Ramnath это правильно. Строка 40 EasyHTMLReport.R - это:
knit(input=f,output=md.file)
Обновите эту строку:
knit(input = f, output = md.file, envir = envir)
Обновите сигнатуру функции из:
easyHtmlReport <-
function(rmd.file,from,to,subject,headers=list(),control=list(),
markdown.options=c("hard_wrap","use_xhtml","smartypants"),
stylesheet="", echo.disable=TRUE, is.debug=F){
чтобы:
easyHtmlReport <-
function(rmd.file,from,to,subject,headers=list(),control=list(),
markdown.options=c("hard_wrap","use_xhtml","smartypants"),
stylesheet="", echo.disable=TRUE, is.debug=FALSE, envir = parent.frame()){
Если вы не хотите перестраивать пакет, вы можете внести это изменение, используя edit
функция.
Я хотел опубликовать свое альтернативное решение, которое я использовал. Он использует mailR
что позволяет нескольким получателям и позволяет легко реализовать html, не беспокоясь о командах mime_part.
library(mailR)
library(markdown)
library(knitr)
from <- "me@me.com"
to <- "me@me.com"
subject <- "Test"
message <- markdownToHTML(knit("Test.Rmd"))
send.mail(from,to,subject,message,html=TRUE,smtp=list( host.name="smtp.test.com"))