I have read in a sequence alignment and have done the necessary steps to 
separate and store the elements of the original input into a new list of 
character vectors. I have compared the sequence list to a "standard" vector, 
such that the return is a matrix of logical values indicating TRUE if there is 
a match to the standard and FALSE where there is no match.

An example;

mylist=c("AAEBCC", "AABDCC", "AABBCD")
list.2 <- strsplit(mylist, split=NULL)
# setting a standard for comparison
std.string <- "AABBCC"
standard <- unlist(strsplit(std.string, split=NULL))
#create a logical matrix 
mat<-sapply(list.2, function(x) x==standard)
>mat


[,1]  [,2]  [,3]
[1,]  TRUE  TRUE  TRUE
[2,]  TRUE  TRUE  TRUE
[3,] FALSE  TRUE  TRUE
[4,]  TRUE FALSE  TRUE
[5,]  TRUE  TRUE  TRUE
[6,]  TRUE  TRUE FALSE

Where the number of columns is the same length as the original input strings I 
compared (15) and the number of rows corresponds is the same as the number of 
strings from the input (99).

I also have a named numeric vector(of length 15)--where the "names" of the the 
values match those of the columns of the logical matrix. For the example

x2 = runif(3, 5.0, 7.5)
names(x2) = 1:3
> x2 
1        2        3 
5.352611 7.058169 6.993105

For each row in the in the logical matrix I want to combine the logical values 
with the values from the numeric vector so that I can run a wilcox.test using 
those values that are "TRUE" against those that are "FALSE".

For instance if each row&vector pairing was a mini data.frame it would look like

df=data.frame(x2, mat[3,])
>df
1 5.352611 FALSE
2 7.058169 TRUE
3 6.993105 TRUE
wilcox.test(df) #based on all true values vs. all false values

How can this be achieved?

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to