@@ -68,7 +68,7 @@ mzrtsim <- function(ncomp = 100,
6868 # generate the base peaks
6969 if (is.null(db )){
7070 stop(" You need database to simulate." )
71- }else {
71+ }else if ( ncomp > 0 ) {
7272 name <- sapply(db ,function (x ) x $ name )
7373 nameli <- sample(unique(name ),ncomp )
7474 z <- db [which(name %in% nameli )]
@@ -84,6 +84,12 @@ mzrtsim <- function(ncomp = 100,
8484 compname <- unlist(name )
8585 compmz <- unlist(mz )
8686 compins <- unlist(nins )
87+ }else {
88+ namelist <- character ()
89+ namelenth <- integer()
90+ compname <- character ()
91+ compmz <- numeric ()
92+ compins <- numeric ()
8793 }
8894 # get peak numbers
8995 npeaks <- length(compname )
@@ -94,7 +100,7 @@ mzrtsim <- function(ncomp = 100,
94100 colnames(matrix0 ) <- colnames(matrix ) <- bc
95101 rownames(matrix0 ) <- rownames(matrix ) <- compname
96102
97- for (i in 1 : npeaks ) {
103+ for (i in seq_len( npeaks ) ) {
98104 samplei <- abs(stats :: rnorm(ncol , mean = compins [i ],
99105 sd = compins [i ] * samplersd [i ]/ 100 ))
100106 matrix [i , ] <- samplei
@@ -110,7 +116,7 @@ mzrtsim <- function(ncomp = 100,
110116 ncompeak <- ncomp * ncpeaks
111117 nbpeak <- npeaks * nbpeaks
112118 # simulation of condition
113- index <- sample(1 : ncomp , ncompeak )
119+ index <- sample(seq_len( ncomp ) , ncompeak )
114120 compcon <- namelist [index ]
115121 matrixc <- matrix [compname %in% compcon , ]
116122 ncpeak <- nrow(matrixc )
@@ -123,8 +129,8 @@ mzrtsim <- function(ncomp = 100,
123129 }
124130 matrix [compname %in% compcon , ] <- matrixc
125131 # simulation of batch
126- indexb <- sample(1 : npeaks , nbpeak )
127- indexb <- 1 : npeaks %in% indexb
132+ indexb <- sample(seq_len( npeaks ) , nbpeak )
133+ indexb <- seq_len( npeaks ) %in% indexb
128134 matrixb <- matrix [indexb , ]
129135 matrixb0 <- matrix0 [indexb , ]
130136 changeb <- changem <- changer <- NULL
@@ -134,7 +140,7 @@ mzrtsim <- function(ncomp = 100,
134140 }
135141 # generate random batch effect
136142 if (grepl(' r' ,batchtype )){
137- for (i in 1 : nrow(matrixb )){
143+ for (i in seq_len( nrow(matrixb ) )){
138144 change <- abs(stats :: rnorm(ncol(matrixb )))
139145 matrixb [i ,] <- matrixb [i ,]* change
140146 matrixb0 [i ,] <- matrixb0 [i ,]* change
@@ -143,7 +149,7 @@ mzrtsim <- function(ncomp = 100,
143149 }
144150 # generate increasing/decreasing batch effect
145151 if (grepl(' m' ,batchtype )){
146- for (i in 1 : nrow(matrixb )){
152+ for (i in seq_len( nrow(matrixb ) )){
147153 changet <- seq(1 ,ncol(matrixb ),length.out = ncol(matrixb )) * exp(stats :: rnorm(1 ))
148154 change <- if (sample(c(T ,F ),1 )) changet else rev(changet )
149155 matrixb [i ,] <- matrixb [i ,]* change
0 commit comments