diff --git a/R/poLCA.compress.R b/R/poLCA.compress.R index 7458fad..6f000e2 100644 --- a/R/poLCA.compress.R +++ b/R/poLCA.compress.R @@ -1,20 +1,25 @@ -poLCA.compress <- -function(y) { - ym.sorted <- y[do.call(order,data.frame(y)),] +poLCA.compress <- function(y) { + freq <- 1 + curpos <- 1 + if (is.null(dim(y))) { + ym.sorted <- t(data.frame(y)) # convert to data.frame so object has dimensions and transpose to match format + vars <- ncol(ym.sorted) + datamat <- ym.sorted + } else { + ym.sorted <- y[do.call(order,data.frame(y)),] vars <- ncol(ym.sorted) datamat <- ym.sorted[1,] - freq <- 1 - curpos <- 1 for (i in 2:nrow(ym.sorted)) { - if (sum(ym.sorted[i,] == ym.sorted[i-1,])==vars) { - freq[curpos] <- freq[curpos]+1 - } else { - datamat <- rbind(datamat,ym.sorted[i,]) - freq <- c(freq,1) - curpos <- curpos+1 - } + if (sum(ym.sorted[i,] == ym.sorted[i-1,])==vars) { + freq[curpos] <- freq[curpos]+1 + } else { + datamat <- rbind(datamat,ym.sorted[i,]) + freq <- c(freq,1) + curpos <- curpos+1 + } } - rownames(datamat) <- c(1:length(freq)) - ret <- list(datamat=datamat,freq=freq) - return(ret) -} + } + rownames(datamat) <- c(1:length(freq)) + ret <- list(datamat=datamat,freq=freq) + return(ret) +} \ No newline at end of file