在 RStudio 的 R Notebook 中运行块时,如何打印小标题? [英] How can I print tibbles when chunk is run in R Notebook in RStudio?
问题描述
我无法通过在 RStudio 的 R Notebook 中运行块来打印由下面的 CSV 文件创建的 Tibble.以下示例打印有关从 read_csv 解析的消息,但不打印 df.但是,当我预览笔记本时,会打印数据框.使用 R 控制台输入代码时也会打印数据框.
I cannot print a Tibble created by the CSV file below by running a chunk in an R Notebook in RStudio. The following example prints messages about parsing from read_csv but does not print df. However, when I preview the notebook, the data frame is printed. The data frame is also printed when entering the code using the R console.
---
title: "Min Example"
output: html_notebook
---
```{r chunk}
library(readr)
library(tibble)
df <- read_csv('min.csv')
df
```
当块运行时,命令 head(df) 也不会产生任何输出,但 summary(df) 和 str(df) 会在笔记本中产生输出.
The command head(df) also produces no output when the chunk is run, but summary(df) and str(df) do produce output in the notebook.
我使用的是最新版本的 RStudio,1.0.136,并且我的软件包是最新的.我的会话信息如下
I am using the latest version of RStudio, 1.0.136, and my packages are up to date. My session info follows
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() 查看数据框产生
Viewing the data frame using dput() produces
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 诊断报告现已可用.>
推荐答案
在其他答案/问题中 (此处),凯文·乌希说:
In other answer/question (here), Kevin Ushey said:
这确实是当前版本的 RStudio 中的一个错误:包含 Date 对象的 data.frames 在笔记本中没有正确呈现.您可以尝试安装最新的 RStudio 每日版本并确认问题已解决:http://dailies.rstudio.com
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: http://dailies.rstudio.com
在升级或降级之间,可以使用print(as.matrix())临时打印代码块中的data.frame:
Between upgrade or downgrade, one may temporarly print data.frame in code chunks by using print(as.matrix()):
```{r}
print(as.matrix(df), quote = FALSE)
```
模拟 head() 的行为:
To simulate head()'s behaviour:
```{r}
print(as.matrix(df), quote = FALSE, max = length(df) * 6)
```
这篇关于在 RStudio 的 R Notebook 中运行块时,如何打印小标题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!