是否有人知道如何将格式良好的yaml文件打印到R中的PDF?我使用yaml
包来加载yaml文件,并想知道将键和值转换为格式良好的表格以打印为PDF的最佳方法是什么。
这是我到目前为止所做的,但是它产生了一个列,其条目具有NA值的向量:
print_inputs = function(inputs_yaml) {
pdf(file='inputs_page.pdf', onefile=TRUE)
mytheme = ttheme_default(
core=list(fg_params=list(hjust=0, x=0.05)),
rowhead=list(fg_params=list(hjust=0, x=0)),
base_size = 5,
base_colour = "black",
base_family = "",
parse = FALSE,
padding = unit(c(4, 4), "mm"))
mat = create_empty_table(0,2)
for (name in names(inputs_yaml)) {
value = unlist(inputs_yaml[[name]])
mat = rbind(mat, c(name, value))
}
mat = array_split(mat, 25)
for (m in mat) { grid.table(mat, theme=mytheme); grid.newpage(); }
dev.off()
}
create_empty_table <- function(num_rows, num_cols) {
frame <- data.frame(matrix(NA, nrow = num_rows, ncol = num_cols))
return(frame)
}
array_split <- function(data, number_of_chunks) {
rowIdx <- seq_len(nrow(data))
lapply(split(rowIdx, cut(rowIdx, pretty(rowIdx, number_of_chunks))), function(x) data[x, ])
}
yaml_file = yaml.load_file('~/Downloads/inputs__towrite.yaml')
print_inputs(yaml_file)
答案 0 :(得分:1)
这是我的解决方案(基本上只是在yaml文件中的值上调用toString):
print_inputs <- function(inputs_yaml) {
pdf(file='inputs_page.pdf', onefile=TRUE, height=15)
inputs_theme = ttheme_default(
core=list(fg_params=list(hjust=0, x=0.05)),
rowhead=list(fg_params=list(hjust=0, x=0)),
base_size = 5,
base_colour = "black",
base_family = "",
parse = FALSE,
padding = unit(c(4, 2), "mm"))
mat = matrix(ncol=2)
for (name in names(inputs_yaml)) {
value = unlist(inputs_yaml[[name]])
value = gsub(',', '\n', toString(value))
value = gsub('File\n', '', value)
mat = rbind(mat, c(toString(name), value))
}
grid.table(mat, theme=inputs_theme)
dev.off()
}