在 RStudio 的 R Notebook 中运行块时,如何打印小标题? [英] How can I print tibbles when chunk is run in R Notebook in RStudio?

查看:104
本文介绍了在 RStudio 的 R Notebook 中运行块时,如何打印小标题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法通过在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆