Let\'s say I have an array of this format
X Y Z
A 1 0
A 2 1
B 1 1
B 2 1
B 1 0
I want to find the frequency of X and the frequen
Using ave
and assuming your data is dat
dat$Fx <- with(dat,ave(Y,list(X),FUN=length))
dat$Fyx <- with(dat,ave(Y,list(X,Y),FUN=length))
Result:
X Y Z Fx Fyx
1 A 1 0 2 1
2 A 2 1 2 1
3 B 1 1 3 2
4 B 2 1 3 1
5 B 1 0 3 2
If the data doesn't have a numeric column for ave
to work on, then:
dat$Fx <- with(dat,ave(seq_len(nrow(dat)),list(X),FUN=length))
dat$Fyx <- with(dat,ave(seq_len(nrow(dat)),list(X,Y),FUN=length))