包含元组的数据帧

问题描述 投票:0回答:2

我正在研究一种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

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

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9mbURHbi5wbmcifQ==” alt =“在此处输入图像描述”>“ >>

然后,我将可以使用Fitness.Score(testing[,'Gene1'],testing[,'Gene2'],testing[,'Gene3'])之类的方法来评估人口成员的适合度>

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

我正在研究一种GA算法(用于组合问题),在该算法中,以元组表示的基因最容易使用。我种群中的每个成员都有多个基因,所以我想要一个...

r dataframe genetic-algorithm
2个回答
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)

0
投票

您应该下载软件包“集合”,然后将包含元组的变量声明为元组:mydata $ variable

© www.soinside.com 2019 - 2024. All rights reserved.