我正在使用knitr包来生成一些基本表。我在一张幻灯片上显示表的前n行,在下一张幻灯片上显示同一表的最后n行。我使用head()和tail()获取第一行和最后一行。
使用head()会产生我期望的结果:
library(dplyr)
library(pander)
data.frame(a = sample(LETTERS, 10),
b = sample(LETTERS, 10)) %>%
head(5) %>%
pander() 产
-------
a b
--- ---
G B
I P
N H
U W
V A
-------但
data.frame(a = sample(LETTERS, 10),
b = sample(LETTERS, 10)) %>%
tail(5) %>%
pander()产生
----------------
a b
-------- --- ---
**6** Y B
**7** F O
**8** B H
**9** R Y
**10** W X
----------------我无法从最后一个表中移除行名。
最上面的答案是建议Pander在行名为1:n时从表中删除行名,但在这里,行名以1开头,因此不会自动删除。
发布于 2017-06-30 14:08:19
如果不希望显示行名,可以使用rownames(df) <- NULL (在tail之后)删除它们,但我不知道如何在管道中使用它。一种方法是转换为tibble,然后再转换回数据框架(因为tibbles不存储行名,但显然不能在tibbles上使用pander ):
data.frame(a = sample(LETTERS, 10),
b = sample(LETTERS, 10)) %>%
dplyr::as.tbl() %>%
tail(5) %>%
as.data.frame() %>%
pander()发布于 2017-06-30 14:18:05
您可能希望在github帐户pander上打开一个问题。
另一种攻击是使用片:
library(dplyr)
library(pander)
data.frame(a = sample(LETTERS, 10),
b = sample(LETTERS, 10)) %>%
slice(n()-5:n()) %>%
pander()https://stackoverflow.com/questions/44848235
复制相似问题