我想创建一个crieria (乐趣)与两个子标准(货物容量,乘客容量)的3个多重决策(爸爸,妈妈和孩子)在yaml文件,我的AHP层次树使用ahp软件包,但不工作。在ahp文件格式元素(https://cran.r-project.org/web/packages/ahp/vignettes/file-format.html)中,元素是:
criteria 1
preferences
childrend
sub-criteria 1.1
sub-criteria 1.2
children: *alternatives但是,当我尝试:
Fun:
preferences:
Dad:
pairwise
- [Cargo Capacity, Passenger Capacity, 1/5]
Mom:
pairwise
- [Cargo Capacity, Passenger Capacity, 1/5]
Kid:
pairwise
- [Cargo Capacity, Passenger Capacity, 1/5]
childrend:
Cargo Capacity:
preferences:
Dad:
pairwise:
- [Fipronil, Imidaclopride, 3]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 5]
Mom:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 5]
Kid:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 1]
- [Imidaclopride, Sulfluramida, 5]
Passenger Capacity:
preferences:
Dad:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 5]
Mom:
pairwise:
- [Fipronil, Imidaclopride, 5]
- [Fipronil, Sulfluramida, 9]
- [Imidaclopride, Sulfluramida, 9]
Kid:
pairwise:
- [Fipronil, Imidaclopride, 7]
- [Fipronil, Sulfluramida, 5]
- [Imidaclopride, Sulfluramida, 5]
children: *alternatives错误是一个重复的映射键:
Error in value[[3L]](cond) :
Could not load ahp model. File must be a valid YAML file. Exception caught when parsing YAML file: Error in yaml::yaml.load(ahpString): Duplicate map key: 'Kid' 如果我去掉“孩子”,那么“妈妈”就会被复制。
我怎么才能解决这个问题?因为我期望每个子标准有一个值,每个子标准内有三个值。
发布于 2017-01-12 21:04:54
您的文件有很多问题:
一个工作文件(非常类似于https://cran.r-project.org/web/packages/ahp/vignettes/file-format.html末尾的文件)是:
Version: 2.0 Alternatives: &alternatives Fipronil: description: alternative 1 Imidaclopride: description: alternative 2 Sulfluramida: description: alternative 3 Goal: name: Fun decision-makers: - Dad: 1/3 - Mom: 1/3 - Kid: 1/3 preferences: Dad: pairwise: - [Cargo Capacity, Passenger Capacity, 1/5] Mom: pairwise: - [Cargo Capacity, Passenger Capacity, 1/5]
`Kid: pairwise: - [Cargo Capacity, Passenger Capacity, 1/5]` `children: Cargo Capacity: preferences: Dad: pairwise: - [Fipronil, Imidaclopride, 3] - [Fipronil, Sulfluramida, 9] - [Imidaclopride, Sulfluramida, 5] Mom: pairwise: - [Fipronil, Imidaclopride, 7] - [Fipronil, Sulfluramida, 9] - [Imidaclopride, Sulfluramida, 5] Kid: pairwise: - [Fipronil, Imidaclopride, 7] - [Fipronil, Sulfluramida, 1] - [Imidaclopride, Sulfluramida, 5] children: *alternatives Passenger Capacity: preferences: Dad: pairwise: - [Fipronil, Imidaclopride, 7] - [Fipronil, Sulfluramida, 9] - [Imidaclopride, Sulfluramida, 5] Mom: pairwise: - [Fipronil, Imidaclopride, 5] - [Fipronil, Sulfluramida, 9] - [Imidaclopride, Sulfluramida, 9] Kid: pairwise: - [Fipronil, Imidaclopride, 7] - [Fipronil, Sulfluramida, 5] - [Imidaclopride, Sulfluramida, 5] children: *alternatives` 再一次,最简单的方法是在这个闪亮的应用程序中使用编辑器(参见上面的链接)。把它粘贴起来,你就走.
发布于 2017-01-11 12:09:56
我不确定您的缩进是否忠实于原版,或者您是否在YAML文件中使用TAB字符(您不应该这样做)。
您的preferences:键没有值,如果它应该使用Dad作为键之一进行映射,请确保它比preferences缩进得更深,目前没有。
问题是键childrend的值是映射,映射有键:Cargo Capacity、Dad、Mom、Kid、Passenger Capacity、Dad、Mom、Kid。双键是不允许的。
https://stackoverflow.com/questions/41582030
复制相似问题