【发布时间】:2018-12-06 01:02:48
【问题描述】:
我到处寻找答案,但我不确定这是否是一个错误,但我还没有发现任何远程类似的问题,所以这里是。
我(相对而言)是 R 中 data.table 库的新手,但它能够轻松地将内容应用于选择性查询而无需为所有内容创建函数,这让我在第一次使用它的那一刻就卖掉了。
我使用 rmarkdown 编译报告,并一直在 DT[i, j, by] 的 j 部分运行绘图。这在 Rstudio 中运行顺利,编辑器按照预期的方式执行我的代码,但是在我编译输出的那一刻,绘图不再符合我想要的(和看到的)!
我已经多次清理并重新启动了我的 Rsession,所以我知道这个问题不是由于我的 R 环境造成的。更奇怪的是,当我实际打印j 代码中的数据时,它们在输出和编辑器中都是相同的,所以plot 真的是搞砸了...
这是说明我的问题的 Rmd 代码:
---
title: "data.table plot issue"
author: "Anyone"
date: "27 juin 2018"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## Building data
```{r}
library(data.table)
tab = data.table(varA = rep(1:4, each=5),
varB = rep(1:5, 4),
varC = rep(LETTERS[1:4], each=5),
varD = rep(c("red", "blue", "green", "hotpink"), each=5))
tab
```
```{r results="hold"}
layout(matrix(1:4, nrow = 2, byrow = T))
a = tab[,{
print(varA)
print(varB)
print(varC)
print(varD)
plot(varB, varA, col=varD, ylim=c(0,5), pch=16, main=varC)
}, by=varC ]
```
但是,这个是我编译后得到的:
打印的变量是正确的,所以我不知道这里有什么问题。我认为它与 Rmarkdown 编译以及它处理绘图的方式有关,但我没有太多工作要做。
有什么想法吗?
编辑:
版本信息:
R version 3.3.3 (2017-03-06)knitr_1.20rmarkdown_1.9
【问题讨论】:
-
我可以重现问题,我的包版本是:
rmarkdown_1.9、knitr_1.20和data.table_1.11.0。我正在运行:R version 3.5.0 (2018-04-23) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows >= 8 x64 (build 9200) -
@Henrik 也许吧,但奇怪的是,这里我们得到了相反的效果(Rstudio 输出很好,而编译的却不是)
标签: r data.table r-markdown