我无法通过在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)
```