Как заполнить матрицу маппли R-функцией? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь использовать функцию в вместо для заполнения двумя пустые столбцы:

  cellName genesNum genesSum oneUMI
1       c1       NA     1917     NA
2       c2       NA     7143     NA
3       c3       NA     2063     NA
4       c4       NA     1733     NA
5       c5       NA     1876     NA
6       c6       NA     1800     NA

Итак, я переписал это:

    for(i in 1:ncol(countMatrix)){
        vec <- countMatrix[,i]
        coldata$genesNum[coldata$cellName == colnames(countMatrix)[i]] <- length(vec[vec > 0])
        coldata$oneUMI[coldata$cellName == colnames(countMatrix)[i]] <- length(vec[vec == 1])
    }

к этому:

fillColData <- function(nameColumn){
    vec <- countMatrix[, nameColumn]
    coldata$genesNum[coldata$cellName ==  nameColumn] <- length(vec[vec > 0])
    coldata$oneUMI[coldata$cellName == nameColumn] <- length(vec[vec == 1])
}

, и я использую as.matrix(mapply(fillColData, colnames(countMatrix))). Но вместо этого иметь полностью заполненную матрицу, подобную этой:

  cellName genesNum genesSum oneUMI
1       c1      934     1917    674
2       c2     2346     7143   1407
3       c3     1046     2063    747
4       c4      904     1733    628
5       c5      939     1876    673
6       c6      981     1800    719

У меня есть только последний столбец:

    [,1]
c1  674
c2 1407
c3  747
c4  628
c5  673
c6  719

Я не понимаю почему, потому что итеративно это правильно. Может кто-то мне помочь, пожалуйста? Спасибо.

...