Исчерпывающая комбинация одного ряда от каждого факторного уровня в R - PullRequest
0 голосов
/ 19 сентября 2018

Предположим, у меня есть такие данные

> df <- data.frame(group = c('A','B','B','C','C'),value=c(1,1,2,1,2))
> df
  group value
1     A     1
2     B     1
3     B     2
4     C     1
5     C     2

Я хотел бы получить все комбинации по одному значению из каждой группы.В этом случае их четыре:

 > df[c(1,2,4),]
      group value
    1     A     1
    2     B     1
    4     C     1
    > df[c(1,2,5),]
      group value
    1     A     1
    2     B     1
    5     C     2
    > df[c(1,3,4),]
      group value
    1     A     1
    3     B     2
    4     C     1
    > df[c(1,3,5),]
      group value
    1     A     1
    3     B     2
    5     C     2

1 Ответ

0 голосов
/ 19 сентября 2018

Полагаю, это поможет:

> do.call(expand.grid,
+         lapply(levels(df$group), function (level) which(df$group == level)))
  Var1 Var2 Var3
1    1    2    4
2    1    3    4
3    1    2    5
4    1    3    5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...