2016-12-08 6 views
0

Использование уценки to/knitr приводит отчет. Я использую следующее, чтобы выбрать строки, пропускающие значения из фреймворка данных и отображающие их как таблицу в моем выходе.Markdown - возвращает текст вместо пустой таблицы, если строки не возвращаются

z <- df[is.na(df$colnamne1) | is.na(df$colname2) | is.na(df$colname3), ] 
    z <- select(z, colname1, colname2, colname3) 

    kable(z) 

Это создает приятную таблицу, если отсутствуют значения. Если нет отсутствующих значений, я бы хотел, чтобы он возвращал текстовое сообщение «none missing» вместо пустой таблицы в моем слове/PDF/html при создании отчета.

ответ

2

Добавление заявления if прекрасно справится с этим. Просто имейте это в виду, если количество строк в вашем фрейме z равно 0. Если нет, распечатайте таблицу! Ниже приведен небольшой пример, чтобы воспроизвести это.

--- 
output: pdf_document 
--- 
```{r, comment = NA, echo = FALSE} 
library('knitr') 

df <- data.frame(colname1 = c(3, 1, 2), 
       colname2 = c(7, 3, 5), 
       colname3 = c(7, 8, 4)) 

# Uncomment the lines below to see how it handles data with NA values. 
# df <- data.frame(colname1 = c(NA, 1, 2), 
#     colname2 = c(NA, 3, 5), 
#     colname3 = c(7, 8, NA)) 

z <- df[is.na(df$colname1) | is.na(df$colname2) | is.na(df$colname3), ] 
z <- z[, c('colname1', 'colname2', 'colname3')] 

if(nrow(z) == 0){ 
    cat('None Missing') 
} else{ 
    kable(z) 
} 

``` 
0

Я искал более удобный формат текста. Я хотел бы предложить щипая @ ответ Сэма с

if(nrow(z) == 0){ 
kable(NULL, caption = 'No records available') 
} else{ 
    kable(z) 
} 

еще не совершенны, но по крайней мере она отражает шрифт документа.