R/fill_blank_cells.R

Defines functions .fill_blank_cells

.fill_blank_cells <- function(dat,layout,rows.colname="row",columns.colname="column") {
  # Add extra lines if a row name is missing from the rxns

  extra.lines.rows <- lapply(rownames(layout),function(r.name,dat,columns) {
    if(!(r.name %in% dat[[rows.colname]])) {
      return(
        lapply(columns,function(c.name,r.name) {
          return(list(row=r.name,column=c.name))
        },
        r.name=r.name) |> data.table::rbindlist()
      )

    } else {
      return(NULL)

    }

  },
  dat=dat,
  columns=colnames(layout)) |> data.table::rbindlist()

  # Add extra lines if a column name is missing from the rxns
  extra.lines.columns <- lapply(colnames(layout),function(c.name,dat,rows) {
    if(!(c.name %in% dat[[columns.colname]])) {
      return(
        lapply(rows,function(r.name,c.name) {
          return(list(row=r.name,column=c.name))
        },
        c.name=c.name) |> data.table::rbindlist()
      )

    } else {
      return(NULL)

    }

  },
  dat=dat,
  rows=rownames(layout)) |> data.table::rbindlist()

  return(data.table::rbindlist(list(dat,
                                    extra.lines.rows,
                                    extra.lines.columns),
                               fill=TRUE))
}
dimitriskokoretsis/qpcrR documentation built on May 29, 2022, 10:11 p.m.