You can define a function that does just that: sum the 1s in Acc and divide
by the length of Acc. Then use tapply to apply the function for each
subject.
f=function(x){sum(as.numeric(as.character(x)))/length(x)}
tapply(d$Acc,list(d$S),f)
HTH,
Daniel
--
View this message in context:
http://r.78
Hi Daniel, thanks for your reply. Unfortunately, that is not doing what I
need. In the example I sent, there are three subjects (S1, S2 & S3). Each
subject has 3 trials worth of data and each trial has 10 samples. What I
want to return is the accuracy rate for each subject. The answer is 66.6
Hi, you should be able to do most of your summaries using tapply() or
aggregate().
for your example,
tapply(d$Acc,list(d$Sample),table)
Here tapply takes Acc, "splits" it by Sample, and then tables Acc (which
returns how many 0s/1s were observed in variable Acc for each stratum of
Sample).
HT
3 matches
Mail list logo