修订后的标题以澄清焦点。Knitr输出在Rmd和Rnw之间有所不同:data.table输出示例
我们注意到R markdown和data.table以一种令人惊讶的方式进行交互的异常。编织乳胶时也不会发生这种情况。在R会话中没有返回的命令确实会在针织降价输出中返回。我跟踪问题回像下面的命令,不产生R中输出,
````{r}
poolballs[ , weight2:=2 * weight]
```
但里面Rmarkdown,输出包括所述poolballs DT的满打印。如果我们在LaTeX中编织一个等同的块,也不会发生这种情况。
这产生了一些有趣的HTML输出,因为我写了这样的块,打算只显示前5行
```{r}
poolballs[ , weight2:=2 * weight]
head(poolballs)
```
降价解析这两个块相当于
> poolballs[ , weight2:=2 * weight]
> poolballs
> head(poolballs)
这里的要展示的减价文件
---
title: "Data Table Guide"
author:
- name: Paul Johnson
affiliation: Center for Research Methods and Data Analysis, University of Kansas
email: [email protected]
date: "`r format(Sys.time(), '%Y %B %d')`"
output:
html_document:
theme: united
highlight: haddock
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo=TRUE, comment=NA)
options(width = 70)
```
```{r make_pb_dt}
set.seed(234234)
library(data.table)
poolballs <- data.table(
number = 1:15,
weight = rnorm(15, 45.7, 0.8),
diameter = c(3, 2.9, 3.1) #shows recyling
)
poolballs
```
I want the following to show only head in line 2
```{r}
poolballs[ , weight2:=2 * weight]
head(poolballs)
```
比较HTML outp UT:
http://pj.freefaculty.org/scraps/mre-dt.html
对不起,如果这是降价的已知特征。我通过隐藏块来围绕这个皱纹编码,但看起来有些不方便。今天,我很好奇,想问你一些问题。我在LaTeX文件中编写了相同的块,并且不会发生有趣的DT输出问题。我在http:/pj.freefaculty.org/scraps/mre-dt-3.pdf中输入了来自LaTeX的PDF链接
这是错误的在几个层次上。首先,第一行不输出!在R中运行它,你应该看到。我没有要求降价打印它。其次,降价行为与noweb文件不同。用Sweave或knitr在LaTeX文件中运行相同的块。第一行中没有一行导致输出。我不想重新编码那一行,我有这样写的目的。比较针织乳胶在这里:http://pj.freefaculty.org/scraps/mre-dt-3.pdf(Rnw相同的文件夹)。第1行不打印。 – pauljohn32
我纠正了,它可能是一个错误,但它绝对不是一个功能。我明白你所做的'data.table'赋值不应该产生输出,但我不认为在html的knitr中的打印方法可以识别这个。它将它看作是调用一个“R”对象并试图相应地打印它。你可以在这里阅读更多关于它的信息:https://stackoverflow.com/questions/15267018/knitr-gets-tricked-by-data-table-assignment –