1

我有一个关于在 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          ]
!

如何取回内联输出?

4

2 回答 2

1

结果被强制转换为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)也有效。

于 2017-04-28T14:11:06.843 回答
0

目前尚不清楚 OP 如何进行编码


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()`!

给出输出

在此处输入图像描述

于 2017-04-28T14:16:18.473 回答