Как я могу удалить имена строк, вставленные в таблицу pander?

Я использую пакет 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, поэтому они не удаляются автоматически.

Как я могу предотвратить отображение номеров строк? Я пытался использовать select(), а также использовать UPDATE из этот вопрос безрезультатно.


person Steven    schedule 30.06.2017    source источник


Ответы (2)


Если вы не хотите, чтобы имена строк отображались, вы можете удалить их, используя rownames(df) <- NULL (после tail), но я не знаю, как использовать это в канале. Одним из хаков было бы преобразование в тиббл, а затем обратное преобразование в фрейм данных (поскольку тибблы не хранят имена строк, но вы, по-видимому, не можете использовать pander в тибблах):

data.frame(a = sample(LETTERS, 10), 
           b = sample(LETTERS, 10)) %>%
  dplyr::as.tbl() %>%
  tail(5) %>% 
  as.data.frame() %>%
  pander()
person F. Privé    schedule 30.06.2017
comment
Да, я тоже не мог понять, как использовать rownames(df) <- NULL с оператором канала. Включение as.tbl() и as.data.frame() пока работает. Однако должен быть лучший способ. - person Steven; 30.06.2017

Вероятно, вы хотите создать задачу в аккаунте github pander

Другой хак использует slice:

library(dplyr)
library(pander)

data.frame(a = sample(LETTERS, 10), 
           b = sample(LETTERS, 10)) %>%
  slice(n()-5:n()) %>% 
  pander()
person Hanjo Odendaal    schedule 30.06.2017
comment
Более упрощенный хак. Задача открыта. - person Steven; 30.06.2017