From 3f6e106c93ab9f28c532547f68b3cd9d5cc3d9b4 Mon Sep 17 00:00:00 2001 From: Nan Xiao Date: Fri, 17 Nov 2017 19:13:46 -0500 Subject: [PATCH] fix ifelse vector return issue --- R/desc-09-CTDD.R | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/R/desc-09-CTDD.R b/R/desc-09-CTDD.R index a4d03a0..c5c7329 100644 --- a/R/desc-09-CTDD.R +++ b/R/desc-09-CTDD.R @@ -45,7 +45,7 @@ extractCTDD = function(x) { group1 = list( 'hydrophobicity' = c('R', 'K', 'E', 'D', 'Q', 'N'), - 'normwaalsvolume' = c('G', 'A', 'S', 'T', 'P', 'D', 'C'), + 'normwaalsvolume' = c('G', 'A', 'S', 'C', 'T', 'P', 'D'), 'polarity' = c('L', 'I', 'F', 'W', 'C', 'M', 'V', 'Y'), 'polarizability' = c('G', 'A', 'S', 'D', 'T'), 'charge' = c('K', 'R'), @@ -72,7 +72,7 @@ extractCTDD = function(x) { 'solventaccess' = c('M', 'S', 'P', 'T', 'H', 'Y')) xSplitted = strsplit(x, split = '')[[1]] - n = nchar(x) + n = nchar(x) G = vector('list', 7) for (i in 1:7) G[[i]] = rep(NA, n) @@ -91,31 +91,15 @@ extractCTDD = function(x) { for (i in 1:7) D[[i]] = matrix(ncol = 5, nrow = 3) for (i in 1:7) { + for (j in 1:3) { + inds = which(G[[i]] == paste0('G', j)) + quartiles = floor(length(inds) * c(0.25, 0.5, 0.75)) - inds = which(G[[i]] == 'G1') - quartiles = floor(length(inds) * c(0.25, 0.5, 0.75)) - - D[[i]][1, ] = ifelse( - length(inds) > 0, - (inds[c(1, ifelse(quartiles > 0, quartiles, 1), length(inds))]) * 100/n, - 0) - - inds = which(G[[i]] == 'G2') - quartiles = floor(length(inds) * c(0.25, 0.5, 0.75)) - - D[[i]][2, ] = ifelse( - length(inds) > 0, - (inds[c(1, ifelse(quartiles > 0, quartiles, 1), length(inds))]) * 100/n, - 0) - - inds = which(G[[i]] == 'G3') - quartiles = floor(length(inds) * c(0.25, 0.5, 0.75)) - - D[[i]][3, ] = ifelse( - length(inds) > 0, - (inds[c(1, ifelse(quartiles > 0, quartiles, 1), length(inds))]) * 100/n, - 0) + quartiles[which(quartiles <= 0)] = 1 + D[[i]][j, ] = if (length(inds) > 0) + (inds[c(1, quartiles, length(inds))]) * 100/n else 0 + } } D = do.call(rbind, D)