Мой кадр данных выглядит следующим образомВсе возможные результаты
gen<-c("A","B","C")
prob<-c("0.95","0.82","0.78")
mw<-c("10","20","50")
df<-data.frame(gen,prob,mw)
gen prob mw
1 A 0.95 10
2 B 0.82 20
3 C 0.78 50
Теперь я хочу, чтобы все возможные результаты (A, B, C), (A, B), (A, C), (B, C), (A), (B), (C), (NONE) с вероятностями, например (A, B, C) = 0,95 * 0,82 * 0,78 = 0,60762.
trials <- data.frame(matrix(nrow=0,ncol=length(gen)))
for(i in 1:length(gen)){
trials.tmp <- t(combn(gen,i))
trials <- rbind(trials,cbind(trials.tmp, matrix(nrow=nrow(trials.tmp),
ncol=length(gen)-i)))
}
trials
V1 V2 V3
1 A <NA> <NA>
2 B <NA> <NA>
3 C <NA> <NA>
4 A B <NA>
5 A C <NA>
6 B C <NA>
7 A B C
Но все же мне не хватает комбинации (NA, NA, NA). Как я могу создать новый фрейм данных со всеми результатами и вероятностями.
Посмотрите в '' combn' и prod' функций и 'lapply' для зацикливания. – zx8754
Все еще не знаете, как его использовать. – Mot4