I have a Data frame that looks like this
Meadow.ID<-c(1:30)
Openness.New<-c("Open", "Closed", "Closed", "Closed", "Open", "Open", "Open", "Closed", "Closed", "Closed", "Open", "Open",
"Open", "Closed", "Open", "Closed", "Open", "Closed", "Open", "Open", "Closed", "Open", "Open", "Open",
"Open", "Closed", "Open", "Open", "Open", "Closed")
Openness.Old<-c("Closed", "Open", "Closed", "Closed", "Open", "Open", "Open", "Open", "Open", "Closed", "Open", "Open",
"Open", "Closed", "Open", "Open", "Open", "Open", "Closed", "Open", "Open", "Closed", "Open", "Open",
"Open", "Closed", "Closed", "Open", "Closed", "Closed")
combinedMeadowData<-data.frame(Meadow.ID,Openness.New,Openness.Old)
and I'd like to calculate the numbers of each possible combination of Open and Closed (closed-closed, open-closed and so on). The way I've done it now is this:
cl.cl<-length(which(combinedMeadowData$Openness.New=="Closed"&combinedMeadowData$Openness.Old=="Closed"))
cl.op<-length(which(combinedMeadowData$Openness.New=="Closed"&combinedMeadowData$Openness.Old=="Open"))
op.cl<-length(which(combinedMeadowData$Openness.New=="Open"&combinedMeadowData$Openness.Old=="Closed"))
op.op<-length(which(combinedMeadowData$Openness.New=="Open"&combinedMeadowData$Openness.Old=="Open"))
it seems very inefficient to me, but I can't think of a better way.
It's an assigment for class, and we can't use any packages besides the R base package, so I'd be super happy about any ideas that use only the base package- Is there maybe a possibility to use aggregate() or something similar?