包含元组的数据框

时间:2015-03-19 17:27:10

标签: r dataframe genetic-algorithm

我正在开发一种GA算法(用于组合学问题),其中基因最易于用元组表示。我的人口中的每个成员都有多个基因,所以我想要一个数据框来保存观察,其中有一些原子变量(例如ID和分数),然后一些变量代表元组。我尝试使用向量,列表和矩阵来表示这些元组,但在所有情况下,R只是cbind / rbind将元组放入数据框或抛出错误。

示例(启动具有相同基因的群体的两个成员)

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

我希望数据框看起来像这样......

enter image description here

然后我就可以使用像Fitness.Score(testing[,'Gene1'],testing[,'Gene2'],testing[,'Gene3'])

这样的东西来评分一个人口成员的健康状况

有没有办法让R做到这一点?

2 个答案:

答案 0 :(得分:1)

这实际上比我制作它更容易。使用data.frame函数会导致rbind / cbind类型行为。创建data.frame然后在之后添加变量不会。

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)

答案 1 :(得分:0)

您应该下载软件包“ sets”,然后将包含元组的变量声明为元组:mydata $ variable <-as.tuples(在数据框中,您可以输入诸如(1,2,4)一个三元组。