2,869
edits
(Created page with "local p = {} p.createTable = function(frame) local numRows = 10 local numCols = 10 local wikitable = '{| class="wikitable"\n' -- Kopfzeile wikitable = wikitable .. '! ' for col = 1, numCols do wikitable = wikitable .. ' !! ' .. col end wikitable = wikitable .. '\n' -- Zeilen und Spalten for row = 1, numRows do wikitable = wikitable .. '|-\n' wikitable = wikitable .. '| ' .. row for col = 1, numCol...") |
No edit summary |
||
| (43 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
local data = require('Module:BiologicalAgeBiomarkers/Data') | |||
local biomarkers = data.biomarkers | |||
local rows = data.rows | |||
for | local studies = data.studies | ||
function p.template(frame, name, arg) | |||
wikitable = wikitable | return frame:expandTemplate({title = name, args = { arg }}) | ||
end | |||
function p.createCrossTable(frame) | |||
for _, study in ipairs(studies) do | |||
local count = 0 | |||
for _ in pairs(study.biomarkers) do | |||
count = count + 1 | |||
end | |||
study.count = count | |||
end | |||
-- Start of the wiki table | |||
local wikitable = '{| class="wikitable sortable"\n' | |||
local sep = '' | |||
for i, row in ipairs(rows) do | |||
for row | wikitable = wikitable .. sep | ||
wikitable = wikitable .. '|-\n' | sep = '|-\n' | ||
wikitable = wikitable .. '| ' .. row | wikitable = wikitable .. '! colspan="3" | ' .. row.name .. '\n' | ||
for | for _, study in ipairs(studies) do | ||
wikitable = wikitable .. ' | local cellValue = study[row.key] or "" | ||
if (row.rotate) then | |||
cellValue = p.template(frame, "VerticalText", cellValue) | |||
else | |||
end | |||
wikitable = wikitable .. '! ' .. cellValue .. '\n' | |||
end | end | ||
wikitable = wikitable .. '\n' | end | ||
-- Column headers: Biomarker and System | |||
wikitable = wikitable .. '|-\n' | |||
wikitable = wikitable .. '! System !! Biomarker !! Count ' | |||
for _, study in pairs(studies) do | |||
wikitable = wikitable .. ' !! ' .. p.template(frame, "pmid", study.pmid) | |||
end | |||
wikitable = wikitable .. '\n' | |||
-- Generate rows for each biomarker | |||
for _, system in ipairs(biomarkers) do | |||
for _, bm in ipairs(system.data) do | |||
wikitable = wikitable .. '|-\n' | |||
wikitable = wikitable .. '| ' .. system.system .. ' || ' .. bm.name | |||
local count = 0 | |||
for _, study in ipairs(studies) do | |||
if study.biomarkers[bm.key] ~= nil then | |||
count = count + 1 | |||
end | |||
end | |||
wikitable = wikitable .. string.format(' || %d', count) | |||
for _, study in ipairs(studies) do | |||
-- Retrieve data value for the current cell, using the nested structure | |||
local cellValue = study.biomarkers[bm.key] or "" | |||
if cellValue == "x" then | |||
cellValue = 'style="background-color:gray; color: transparent;" | ' .. cellValue | |||
elseif cellValue ~= "" then | |||
cellValue = 'style="background-color:gray;" | ' .. cellValue | |||
end | |||
wikitable = wikitable .. ' || ' .. cellValue | |||
end | |||
wikitable = wikitable .. '\n' | |||
end | |||
end | end | ||
-- | -- End of the table | ||
wikitable = wikitable .. '|}' | wikitable = wikitable .. '\n|}' | ||
return wikitable | return wikitable | ||
end | end | ||
return p | return p | ||