I'm working with data in the following format
Year Site Zone Species
2010 A a cat
2010 A a dog
2010 A b cat
2010 B a rabbit
2010 B a cat
2010 B b cat
2011 A a dog
2011 A a cat
2011 A b rabbit
2011 B a cat
2011 B b dog
2011 B b cat
and I would like to obtain:
Year Site Zone cat dog rabbit
2010 A a 1 1 0
2010 A b 1 0 0
2010 B a 1 0 1
2010 B b 1 0 0
2011 A a 1 1 0
2011 A b 0 0 1
2011 B a 1 0 0
2011 B b 1 1 0
What is the best way to do this in R with dplyr (or otherwise) ?
Here is a dput of the data in long format:
structure(list(Year = c(2010L, 2010L, 2010L, 2010L, 2010L, 2010L,
2011L, 2011L, 2011L, 2011L, 2011L, 2011L), Site = c("A", "A",
"A", "B", "B", "B", "A", "A", "A", "B", "B", "B"), Zone = c("a",
"a", "b", "a", "a", "b", "a", "a", "b", "a", "b", "b"), Species = c("cat",
"dog", "cat", "rabbit", "cat", "cat", "dog", "cat", "rabbit",
"cat", "dog", "cat")), class = "data.frame", row.names = c(NA,
-12L))