使用knitr将tibble数据生成分级格式表格的技术问询
嘿,我来帮你实现用knitr生成这种自定义分级表格的需求!
核心思路是直接用cat()函数逐行输出你想要的文本格式,结合循环遍历tibble里的每一行观测,就能得到你要的效果。以下是完整的R代码,你可以直接放到knitr文档的代码块里:
首先构造你的tibble数据:
library(tibble) df <- tibble( name = c("A", "B", "C"), town = c("London", "Paris", "Berlin"), pop = c(15000000, 10000000, 7500000), lan = c("english", "french", "german"), score = c(7, 8, 6) )
然后编写生成自定义表格的代码(记得把代码块的echo=FALSE参数加上,这样不会显示代码,只输出最终格式):
```{r echo=FALSE} library(purrr) # 遍历每一行生成格式内容 walk(1:nrow(df), function(i) { current_row <- df[i, ] # 输出城市、人口、名称行 cat(current_row$town, current_row$pop, current_row$name, "\n") # 短分隔线 cat("----------------------\n") # 输出分数和语言 cat("Score", current_row$score, "\n") cat("lan", current_row$lan, "\n") # 长分隔线,最后一行不重复输出(如果需要最后一行也有,就去掉if判断) if (i != nrow(df)) { cat("======================\n") } })
运行这段代码后,knitr会生成你想要的格式:
London 15000000 A
Score 7
lan english
lan english
Paris 10000000 B
Score 8
lan french
lan french
Berlin 7500000 C
Score 6
lan german
如果最后一行也需要长分隔线,只需要去掉代码里的`if (i != nrow(df))`判断就行。 内容的提问来源于stack exchange,提问作者Nicolas Rosewick
相关产品推荐
相关产品推荐

