/ / Dátové rámce obsahujúce n-tice - r, dátový rámec, genetický algoritmus

Dátové rámce obsahujúce n - r, dátový rámec, genetický algoritmus

Pracujem na algoritme GA (pre aproblém kombinatoriky), v ktorom sa s génmi najľahšie pracuje, keď sú reprezentované n-ticami. Každý člen mojej populácie má viac génov, takže chcem dátový rámec, ktorý by obsahoval pozorovania, kde existuje niekoľko atómových premenných (napr. ID a skóre) a potom niektoré z týchto premenných predstavujú n-tice. Snažil som sa reprezentovať tieto n-tice pomocou vektorov, zoznamov a matíc, ale vo všetkých prípadoch je R jednoducho cbind/rbindzapojenie n-tíc do dátového rámca alebo vyhodenie chyby.

Príklad (začnite u oboch príslušníkov populácie rovnakými génmi)

ID<-1:2
Score<-c(0,0)
Gene1<-list(1:3)
Gene2<-list(4:6)
Gene3<-list(7:9)
testing<-data.frame(ID,Score,replicate(2,Gene1),replicate(2,Gene2),replicate(2,Gene3))
Error in data.frame(ID, Score, replicate(2, Gene1), replicate(2, Gene2),  :
arguments imply differing number of rows: 2, 3

Chcem, aby dátový rámec vyzeral takto ...

tu zadajte popis obrázku

A potom by som bol schopný vyhodnotiť vhodnosť člena populácie pomocou niečoho podobného Fitness.Score(testing[,"Gene1"],testing[,"Gene2"],testing[,"Gene3"])

Existuje spôsob, ako to donútiť R?

odpovede:

0 pre odpoveď č. 1

Je to skutočne oveľa jednoduchšie, ako som to robil. Pomocou data.frame funkcia spôsobuje rbind/cbind typové správanie. Vytvorenie dátového rámca a následné pridanie premenných nie.

ID<-1:2
Score<-c(0,0)
Gene1<-list(1:3)
Gene2<-list(4:6)
Gene3<-list(7:9)
testing<-data.frame(ID,Score)
testing$Gene1<-replicate(2,Gene1)
testing$Gene2<-replicate(2,Gene2)
testing$Gene3<-replicate(2,Gene3)
View(testing)