在RStudio中的R Notebook中运行块时如何打印tibbles?

我无法通过在RStudio中的R笔记本中运行块来打印由CSV文件创建的Tibble.以下示例打印有关从read_csv解析的消息,但不打印df.但是,当我预览笔记本时,会打印数据框.使用R控制台输入代码时也会打印数据框.

---
title: "Min Example"
output: html_notebook
---

```{r chunk}
library(readr)
library(tibble)
df <- read_csv('min.csv')
df
```

命令头(df)在运行块时也不产生输出,但summary(df)和str(df)确实在笔记本中产生输出.

我使用的是最新版本的RStudio,1.0.136,我的软件包是最新的.我的会话信息如下

R version 3.3.2 (2016-10-31)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.1 LTS

locale:
[1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8       
[4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
[7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] tibble_1.2  readr_1.0.0

loaded via a namespace (and not attached):
[1] assertthat_0.1 tools_3.3.2    Rcpp_0.12.8    knitr_1.15.1

CSV文件的内容是

ID,Year,PubDate,CWE,CVSS,Vendor,Project
CVE-1999-0001,1999,1999-12-30,CWE-20,5.0,freebsd,freebsd
CVE-1999-0002,1998,1998-10-12,CWE-119,10.0,caldera,openlinux
CVE-1999-0003,1998,1998-04-01,NA,10.0,sgi,irix
CVE-1999-0004,1997,1997-12-16,NA,5.0,university_of_washington,pine
CVE-1999-0005,1998,1998-07-20,NA,10.0,university_of_washington,imap
CVE-1999-0006,1998,1998-07-14,NA,10.0,qualcomm,qpopper
CVE-1999-0007,1998,1998-06-26,NA,5.0,ssleay,ssleay
CVE-1999-0008,1998,1998-06-08,NA,10.0,sun,solaris
CVE-1999-0009,1998,1998-04-08,NA,10.0,sgi,irix

使用dput()查看数据框产生

structure(list(ID = c("CVE-1999-0001", "CVE-1999-0002", "CVE-1999-0003", 
"CVE-1999-0004", "CVE-1999-0005", "CVE-1999-0006", "CVE-1999-0007", 
"CVE-1999-0008", "CVE-1999-0009"), Year = c(1999L, 1998L, 1998L, 
1997L, 1998L, 1998L, 1998L, 1998L, 1998L), PubDate = structure(c(10955, 
10511, 10317, 10211, 10427, 10421, 10403, 10385, 10324), class = "Date"), 
    CWE = c("CWE-20", "CWE-119", NA, NA, NA, NA, NA, NA, NA), 
    CVSS = c(5, 10, 10, 5, 10, 10, 5, 10, 10), Vendor = c("freebsd", 
    "caldera", "sgi", "university_of_washington", "university_of_washington", 
    "qualcomm", "ssleay", "sun", "sgi"), Project = c("freebsd", 
    "openlinux", "irix", "pine", "imap", "qpopper", "ssleay", 
    "solaris", "irix")), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -9L), .Names = c("ID", "Year", "PubDate", 
"CWE", "CVSS", "Vendor", "Project"), spec = structure(list(cols = structure(list(
    ID = structure(list(), class = c("collector_character", "collector"
    )), Year = structure(list(), class = c("collector_integer", 
    "collector")), PubDate = structure(list(format = ""), .Names = "format", class = c("collector_date", 
    "collector")), CWE = structure(list(), class = c("collector_character", 
    "collector")), CVSS = structure(list(), class = c("collector_double", 
    "collector")), Vendor = structure(list(), class = c("collector_character", 
    "collector")), Project = structure(list(), class = c("collector_character", 
    "collector"))), .Names = c("ID", "Year", "PubDate", "CWE", 
"CVSS", "Vendor", "Project")), default = structure(list(), class = c("collector_guess", 
"collector"))), .Names = c("cols", "default"), class = "col_spec"))

RStudio Diagnostics Report现已推出.

最佳答案 在其他答案/问题
(here)中,Kevin Ushey说:

This is indeed a bug in the current release of RStudio: data.frames containing Date objects are not rendered properly in notebooks. You might try installing the latest daily build of RStudio and confirming the issue is resolved there: 07001

在升级或降级之间,可以使用print(as.matrix())临时在代码块中打印data.frame:

```{r}
print(as.matrix(df), quote = FALSE)
```

模拟head()的行为:

```{r}
print(as.matrix(df), quote = FALSE, max = length(df) * 6)
```
点赞