假设我有这样的数据
> 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
答案 0 :(得分:1)
我想这会有所帮助:
> 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