Фильтрация фрейма данных по коэффициентам в R

У меня есть следующий фрейм данных:

sp <- combn(c("sp1","sp2","sp3","sp4"),2)
d <- data.frame(t(sp),"freq"=sample(0:100,6))

и два фактора

x1 <- as.factor(c("sp1","sp2"))
x2 <- as.factor(c("sp3","sp4"))

Мне нужен возвращенный фрейм данных, содержащий все возможные комбинацииx1 а такжеx2 иfreq из кадра данныхd связано с этой комбинацией.

Возвращенный фрейм данных будет выглядеть так:

data.frame("X1" = c("sp1","sp1","sp2","sp2"),
           "X2" = c("sp3","sp4","sp3","sp4"),
           "freq" = c(4,94,46,74))

Я пытался:

sub <- d[d$X1 == x1 & d$X2 == x2,]

но получите ошибку

Error in Ops.factor(d$X1, x1) : level sets of factors are different

Есть идеи, как решить эту проблему?

Ответы на вопрос(2)

Ваш ответ на вопрос