Filtrando um quadro de dados por fatores em R
Eu tenho o seguinte dataframe:
sp <- combn(c("sp1","sp2","sp3","sp4"),2)
d <- data.frame(t(sp),"freq"=sample(0:100,6))
e dois fatores
x1 <- as.factor(c("sp1","sp2"))
x2 <- as.factor(c("sp3","sp4"))
Preciso de um dataframe retornado contendo todas as combinações possíveis dex1
ex2
e afreq
do dataframed
associado a essa combinação.
O dataframe retornado ficaria assim:
data.frame("X1" = c("sp1","sp1","sp2","sp2"),
"X2" = c("sp3","sp4","sp3","sp4"),
"freq" = c(4,94,46,74))
Eu tentei:
sub <- d[d$X1 == x1 & d$X2 == x2,]
mas pegue o erro
Error in Ops.factor(d$X1, x1) : level sets of factors are different
Alguma idéia de como resolver esse problema?