[R] numeric(0)
Gabor Grothendieck
ggrothendieck at myway.com
Wed Dec 29 15:29:34 CET 2004
>
: Date: Wed, 29 Dec 2004 14:17:35 +0100
: From: dax42 <Dax42 at web.de>
: [ Add to Address Book | Block Address | Report as Spam ]
: To: <r-help at stat.math.ethz.ch>
: Subject: [R] numeric(0)
:
:
: Dear all,
:
: I am trying to calculate a score for a string sequence consisting of
: the following four letters: ACGT.
: I have got a matrix giving the scores for each pair of letters.
: So for example the string ACCT has got the pairs: AC, CC and CT.
:
: The matrix has got the following form:
: names<-c("A","C","G","T");
: mscore<-matrix(0,4,4);
: rownames(mscore)<-names;
: colnames(mscore)<-names;
:
: So for the first example pair above I could get the score contained in
: the matrix with the following code:
: >> mscore["A","C"]
:
: I am now trying to sum up all the scores with the following code:
:
: score<-0;
:
: for(j in 1:length(sequence)-1){
: score<-score+mscore[sequence[j],sequence[j+1]];
: }
The above code sutracts 1 from the vector 1:length(sequence) giving
a vector that starts at 0. I think you meant
1:(length(sequence)-1)
:
: where sequence is the string sequence.
: Unfortunately, it does not work and I get the following error message:
:
: Error in "[<-"(`*tmp*`, 1, i, value = numeric(0)) :
: nothing to replace with
:
: What does this mean? Strangely, the command
: "print(score+mscore[sequence[j],sequence[j+1]])"
: works, so it really is the assignment which won't work. Why is that?
: I am running R 2.0 series (GUI version) on Mac OSX 10.3.7.
:
: Any suggestions are welcome.
Try this. (The first line is to ensure that levels that don't
appear still get counted.)
f <- factor(sequence, levels = names)
sum(table(f[-length(f)], f[-1]) * mscore)
More information about the R-help
mailing list