R/combinesample.R

Defines functions combinesample

Documented in combinesample combinesample

combinesample <- function(minfrac = 0.2) {
  data <- read.csv(dir()[1], stringsAsFactors = F, header = F)
  colnames(data) <- data[2, ]
  data <- data[-c(1:10), ]

  index.mz <- which(colnames(data) != "")
  index.int <- which(colnames(data) == "")

  data.mz <- data[, index.mz]
  data.int <- data[, index.int]
  colnames(data.mz) <-
    paste(colnames(data.mz), c(1:ncol(data.mz)), sep = "_")

  union.mz <- as.vector(as.matrix(data.mz))
  union.mz <- union.mz[union.mz != ""]
  union.mz <- sort(as.numeric(unique(union.mz)))

  data.final <- NULL
  for (i in 1:ncol(data.mz)) {
    mz <- data.mz[, i]
    mz <- as.numeric(mz[mz != ""])
    int <- data.int[, i]
    int <- as.numeric(int[int != ""])
    idx <- match(mz, union.mz)
    data.new <- rep(NA, length(union.mz))
    data.new[idx] <- int
    data.final <- cbind(data.final, data.new)
  }
  colnames(data.final) <- colnames(data.mz)
  na.per <- apply(data.final, 1, function(x) {sum(is.na(x))/ncol(data.final)})
  idx <- which(na.per < minfrac)
  data.final <- data.frame(union.mz, data.final)
  colnames(data.final)[1] <- "mz"
  data.final <- data.final[idx,]
  data.final[is.na(data.final)] <- 0
  write.csv(data.final, "data.final.csv", row.names = F)
  data.for.simca <- t(data.final)
  colnames(data.for.simca) <- NULL
  write.csv(data.for.simca, "data.for.simca.csv", row.names = T)
}
jaspershen/surui documentation built on May 18, 2019, 5:56 p.m.