Calculations for all possible combinations of a dataframe

Viewed 30

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?

0 Answers
Related