-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathby-parameter.Rmd
120 lines (93 loc) · 2.32 KB
/
by-parameter.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
---
output: github_document
title: By parameter
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(yaml)
library(data.table)
source("functions.R")
```
```{r results='asis'}
menu_maker("")
```
INDEX
```{r listing-reading}
fns <- list.files("../data", full.names = TRUE) |> sort()
fns <- fns[!grepl("README[.]md$", fns)]
headers <- get_headers(fns)
```
```{r create-tables, results='asis'}
tab <- lapply(names(headers), \(h) {
f <- headers[[h]]
title <- f$`title-paper`
software <- f$`software-package`
doi <- f$doi
# Processing software tools
software <- if (length(software)) {
sprintf(
"[%s (%s)](%s)",
sapply(software, "[[", 2),
sapply(software, "[[", 1),
sapply(software, "[[", 3)
) |> paste(collapse = ", ")
} else
""
# Processing DOI
doi <- if (length(doi)) {
sprintf("[%s](https://doi.org/%s)", doi, doi)
} else
""
# Processing parameters
parameters <- f$parameters
parameters <- if (length(parameters))
paste0("`", parameters, "`", collapse = ", ")
else
""
# Putting all together
data.table(
title = paste(
null2empty(title),
sprintf("[(**link**)](%s)", gsub("[.]{2}/data", "entries", h))
),
software = software,
doi = null2empty(doi),
parameters = parameters
)
}) |> rbindlist(fill = TRUE)
tab$files <- names(headers)
tab[, parameters := tolower(parameters)]
# Building parameters entries
parameters <- strsplit(tab$parameters, split = "\\s*,\\s*") |>
unlist(recursive = TRUE) |>
sort()
# Extracting the first letter word (to make an index)
parameters <- data.table(
parameters = parameters,
first = gsub("^`([[:alnum:]]).+", "\\1", parameters)
)
for (l in sort(unique(parameters$first))) {
cat("**", toupper(l), "** ", sep = "")
tmp <- parameters[first == l, c(parameters)] |>
unique()
linker(tmp, tmp) |>
cat(sep = ", ")
cat("\n\n")
}
```
# Details
```{r printer, results='asis'}
for (kw in sort(unique(parameters$parameters))) {
cat("\n\n## ", gsub("`", "", kw), "\n\n")
entries <- tab[grepl(kw, parameters)]
cat(
sprintf(
"%i. %s %s",
1:nrow(entries),
entries$title,
fifelse(entries$software == "", "", paste0("(*software*: ", entries$software, ")"))
),
sep = "\n"
)
}
```