2

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?

Ronak Shah
  • 377,200
  • 20
  • 156
  • 213
schinken
  • 25
  • 3
  • 2
    `table(combinedMeadowData$Openness.New, combinedMeadowData$Openness.Old)` Or `aggregate(.~Openness.New + Openness.Old, combinedMeadowData, length)` – Ronak Shah Nov 24 '20 at 06:57
  • Thanks! (How can i mark your answer as helpful? I don't seem to find the button) just out of interest: What does the dot in the aggregate call do? – schinken Nov 24 '20 at 09:06

0 Answers0