Using custom knit_print functions in r notebooks

21 views
Skip to first unread message

Carsten Schwemmer

unread,
Feb 12, 2017, 7:22:47 AM2/12/17
to knitr
Hi,

I'm trying to create a custom knit_print function and unfortunately this does not work as expected. I read through the [vignette](https://cran.rstudio.com/web/packages/knitr/vignettes/knit_print.html) and tried a simple example:

library(knitr)

knit_print.foo = function(input,...){

  asis_output(input)
}

test <- "<table style=\"border-collapse:collapse; border:none;\">\n <caption style=\"font-weight: bold; text-align:left;\">elder's dependency</caption>\n <tr>\n <th style=\"border-top:double; text-align:center; font-style:italic; font-weight:normal; padding-left:0.2cm; padding-right:0.2cm; border-bottom:1px solid; \">value</th>\n <th style=\"border-top:double; text-align:center; font-style:italic; font-weight:normal; padding-left:0.2cm; padding-right:0.2cm; border-bottom:1px solid;\">N</th>\n <th style=\"border-top:double; text-align:center; font-style:italic; font-weight:normal; padding-left:0.2cm; padding-right:0.2cm; border-bottom:1px solid;\">raw %</th>\n <th style=\"border-top:double; text-align:center; font-style:italic; font-weight:normal; padding-left:0.2cm; padding-right:0.2cm; border-bottom:1px solid;\">valid %</th>\n <th style=\"border-top:double; text-align:center; font-style:italic; font-weight:normal; padding-left:0.2cm; padding-right:0.2cm; border-bottom:1px solid;\">cumulative %</th>\n </tr>\n\n <tr>\n <td style=\"padding:0.2cm; text-align:left; \">independent</td>\n <td style=\"padding:0.2cm; text-align:center;\">66</td>\n <td style=\"padding:0.2cm; text-align:center;\">7.27</td>\n <td style=\"padding:0.2cm; text-align:center;\">7.33</td>\n <td style=\"padding:0.2cm; text-align:center;\">7.33</td>\n </tr>\n \n <tr>\n <td style=\"padding:0.2cm; text-align:left; \">slightly dependent</td>\n <td style=\"padding:0.2cm; text-align:center;\">225</td>\n <td style=\"padding:0.2cm; text-align:center;\">24.78</td>\n <td style=\"padding:0.2cm; text-align:center;\">24.97</td>\n <td style=\"padding:0.2cm; text-align:center;\">32.30</td>\n </tr>\n \n <tr>\n <td style=\"padding:0.2cm; text-align:left; \">moderately dependent</td>\n <td style=\"padding:0.2cm; text-align:center;\">306</td>\n <td style=\"padding:0.2cm; text-align:center;\">33.70</td>\n <td style=\"padding:0.2cm; text-align:center;\">33.96</td>\n <td style=\"padding:0.2cm; text-align:center;\">66.26</td>\n </tr>\n \n <tr>\n <td style=\"padding:0.2cm; text-align:left; \">severely dependent</td>\n <td style=\"padding:0.2cm; text-align:center;\">304</td>\n <td style=\"padding:0.2cm; text-align:center;\">33.48</td>\n <td style=\"padding:0.2cm; text-align:center;\">33.74</td>\n <td style=\"padding:0.2cm; text-align:center;\">100.00</td>\n </tr>\n \n <tr>\n <td style=\"padding:0.2cm; text-align:left; border-top:1px solid; border-bottom:double; \">missings</td>\n <td style=\"padding:0.2cm; text-align:center; border-top:1px solid; border-bottom:double;\">7</td>\n <td style=\"padding:0.2cm; text-align:center; border-top:1px solid; border-bottom:double;\">0.77</td>\n <td style=\"padding:0.2cm; border-top:1px solid; border-bottom:double;\"></td>\n <td style=\"padding:0.2cm; border-top:1px solid; border-bottom:double;\"></td>\n </tr>\n<tr>\n<td style=\"padding:0.2cm; text-align:right; font-style:italic; font-size:0.9em; padding-top:0.1cm; padding-bottom:0.1cm;\" colspan=\"5\">total N=908 &middot; valid N=901 &middot; x&#772;=2.94 &middot; &sigma;=0.94</td>\n </tr>\n </table>"
class(test) = "foo"


test
This howeverdoes not return the html version of the object in an rnotebook. If I wrap asis_output() around the object manually, there is no problem and the table is printed. Can you please help me out here? I posted a related on stackoverflow [here](http://stackoverflow.com/questions/41172411/add-native-knitr-print-methods).



Reply all
Reply to author
Forward
0 new messages