2016-12-08 5 views
0

/knitrへのmarkdownを使用するとレポートが生成されます。私は、データフレームから値が欠けている行を選択し、それらを出力にテーブルとして表示するために、次のものを使用します。Markdown - 行が返されない場合は、空のテーブルの代わりにテキストを返します。

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

    kable(z) 

値が不足している場合は、これにより素敵なテーブルが作成されます。不足している値がない場合は、レポートを生成するときに私の単語/ PDF/htmlに空のテーブルの代わりに "none missing"というテキストメッセージを返すようにします。

答えて

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) 
} 

まだ完璧ではありませんが、少なくともドキュメントのフォントを反映しています。

関連する問題