Вывод чисел в блокноте R

У меня есть вопрос относительно вывода чисел, встроенных в блокнот R. Я хотел переключиться на более читаемый код, используя dplyr и каналы, но теперь числа, которые я хотел бы вычислить, больше не отображаются в строке с текстом.

До сих пор я писал свой код следующим образом:

Number of dogs: `r nrow(animals[which(animals$species == "dog"),])`!

И я получил встроенные числа:

Number of dogs: 8!

Если я перейду на

Number of dogs: `r animals %>% filter(species == "dog") %>% count()`!

Вывод больше не является встроенным, а вставляется в строку ниже с рамкой вокруг него:

Number of dogs:
[              n]
[          <int>]
[             90]
[1 row          ]
!

Как вернуть встроенный вывод?


person Me Myself    schedule 28.04.2017    source источник


Ответы (2)


Результат приводится к tibble.

library(dplyr)

(xy <- iris %>% filter(Species == "setosa") %>% count())

# A tibble: 1 × 1
      n
  <int>
1    50

Оберните его в as.numeric, чтобы получить одну цифру (вектор длины 1).

> as.numeric(xy)
[1] 50

unlist(xy) тоже работает.

person Roman Luštrik    schedule 28.04.2017

Непонятно, как ОП делал кодирование


title: "Testing"
author: "akrun"
date: "April 28, 2017"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(dplyr)
library(tibble)
```

```{r code1, eval=TRUE, echo = FALSE}

animals <- data.frame(species = c("dog", "cat", "dog", "cat"), stringsAsFactors=FALSE)
animals1 <- data_frame(species = c("dog", "cat", "dog", "cat"), stringsAsFactors=FALSE)
animals2 <- as_tibble(animals)
```


Number of dogs: `r animals %>% filter(species == "dog") %>% count()`!

Number of dogs: `r animals1 %>% filter(species == "dog") %>% count()`!

Number of dogs: `r animals2 %>% filter(species == "dog") %>% count()`!

дает результат

введите здесь описание изображения

person akrun    schedule 28.04.2017