修訂後的標題以澄清焦點。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 –