对/ knitr使用markdown会生成报告。我使用以下内容从数据框中选择缺少值的行,并将其显示为输出中的表。
p1
如果缺少值,则会创建一个很好的表。如果没有缺失值,我希望在生成报告时返回文本消息“none missing”而不是我的word / PDF / html中的空表。
答案 0 :(得分: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)
}
```
答案 1 :(得分:0)
我正在为文本寻找更好的格式。我建议用
来调整@Sam的回答if(nrow(z) == 0){
kable(NULL, caption = 'No records available')
} else{
kable(z)
}
仍然不完美,但至少它反映了你文档的字体。