18 lines
641 B
R
18 lines
641 B
R
ncsub <- function(x)
|
|
{
|
|
n <- length(x)
|
|
a <- seq_len(n)
|
|
seqlist <- list()
|
|
for(i in 2:(n-1))
|
|
{
|
|
seqs <- combn(a, i) # Get all subseqs
|
|
ok <- apply(seqs, 2, function(x) any(diff(x)!=1)) # Find noncts ones
|
|
newseqs <- unlist(apply(seqs[,ok], 2, function(x) list(x)), recursive=FALSE) # Convert matrix to list of its columns
|
|
seqlist <- c(seqlist, newseqs) # Append to existing list
|
|
}
|
|
lapply(seqlist, function(index) x[index])
|
|
}
|
|
# Example usage
|
|
ncsub(1:4)
|
|
ncsub(letters[1:5])
|