R - Penurunan harga menghindari paket memuat pesan

198

Saya telah menggunakan Knitr via R-Studio, dan menurut saya cukup rapi. Saya punya masalah kecil sekalipun. Ketika saya sumber file di R-Chunk, keluaran knitr menyertakan komentar eksternal sebagai berikut:

+ FALSE Loading required package: ggplot2
+ FALSE Loading required package: gridExtra
+ FALSE Loading required package: grid
+ FALSE Loading required package: VGAM
+ FALSE Loading required package: splines
+ FALSE Loading required package: stats4
+ FALSE Attaching package: 'VGAM'
+ FALSE The following object(s) are masked from 'package:stats4':

Saya telah mencoba mengatur opsi R-chunk dengan berbagai cara tetapi sepertinya tidak menghindari masalah:

```{r echo=FALSE, cache=FALSE, results=FALSE, warning=FALSE, comment=FALSE, warning=FALSE} 
source("C:/Rscripts/source.R");

```

Apakah ada cara untuk mengomentari pesan-pesan ini?

Roark
sumber
2
atur options(warn=-1)dan kembali ke options(warn=0)pada akhir Rmd. Mengurus semua pesan paket startup. Perhatikan bahwa Anda akan mematikan peringatan, tetapi hanya saat Rmd diberikan.
Dan Kalleward

Jawaban:

269

Anda dapat menggunakannya include=FALSEuntuk mengecualikan semua yang ada di chunk.

```{r include=FALSE}
source("C:/Rscripts/source.R")
```

Jika Anda hanya ingin menekan pesan, gunakan message=FALSEsaja:

```{r message=FALSE}
source("C:/Rscripts/source.R")
```
Yihui Xie
sumber
Fakta yang resultstidak dapat FALSEdisayangkan adalah disayangkan. Saya lebih suka pilihan potongan resultsmenjadi terpecah menjadi results, holddan markupyang semua akan nilai-nilai boolean. Sayangnya, ini bukan cara kerjanya.
Kepala
1
bagaimana jika kami ingin mematikan pesan secara global untuk SEMUA bagian, bagaimana Anda melakukannya?
Prasad Chalasani
13
@PrasadChalasani knitr::opts_chunk$set(message = FALSE) yihui.name/knitr/options
Yihui Xie
1
@Head resultsdapat FALSE(yang merupakan alias dari results="hide") sejak knitr 1.16: github.com/yihui/knitr/issues/1360
Yihui Xie
102
```{r results='hide', message=FALSE, warning=FALSE}
library(RJSONIO)
library(AnotherPackage)
```

lihat Chunk Options di Knitr docs

cbare
sumber
12
Satu warning=FALSE-satunya hal yang berhasil untuk saya. Pasti cara terbaik untuk memasukkan potongan dalam output Anda tanpa peringatan jelek!
Alex P. Miller
Bagaimana cara mengatur ini untuk seluruh dokumen? Apakah saya harus memasukkannya ke setiap chunk secara manual?
Fadwa
3
@Misaki Lihat komentar Yihui di atas tentang knitr :: opts_chunk $ set (message = FALSE)
cbare
7

Solusi terbaik saya pada R Markdown adalah membuat potongan kode hanya untuk memuat pustaka dan mengecualikan semua yang ada di chunk.

{r results='asis', echo=FALSE, include=FALSE,}
knitr::opts_chunk$set(echo = TRUE, warning=FALSE)
#formating tables
library(xtable)

#data wrangling
library(dplyr)

#text processing
library(stringi)
Paul Tyler
sumber
6

Ini adalah pertanyaan lama, tetapi inilah cara lain untuk melakukannya.

Anda dapat memodifikasi kode R itu sendiri bukan pilihan potongan, dengan membungkus sourcepanggilan dalam suppressPackageStartupMessages(), suppressMessages()dan / atau suppressWarnings(). Misalnya:

```{r echo=FALSE}
suppressWarnings(suppressMessages(suppressPackageStartupMessages({
source("C:/Rscripts/source.R")
})
```

Anda juga dapat menempatkan fungsi-fungsi itu di sekitar library()panggilan Anda di dalam "source.R"skrip.

shadowtalker
sumber