好的,我对R相当新手,并尝试搜索文档来解决我的问题,以下是我的问题:
我有一个名为heeds.data的数据框架,其形式如下(出于简单起见,省略了一些列) eval.num, eval.count, ... fitness, fitness.mean, green.h.0, green.v.0, offset.0, green.h.1, green.v.1,...green.h.7, green.v.7, offset.7...
我已经选择了一行数据,符合以下条件:
best.fitness <- min(heeds.data$fitness.mean[heeds.data$eval.count >= 10])
best.row <- heeds.data[heeds.data$fitness.mean == best.fitness]
现在,我想要的是所有具有绿色.h.0到offset.7列(连续的一段列)等于best.row的其他行。
我认为这可能有效。
heeds.best <- heeds.data$fitness[
heeds.data$green.h.0 == best.row$green.h.0 & ...
]
但是使用24列似乎是一种愚蠢的方法。我正在寻找一些更简单、手动输入更少的东西。
以下是一个简短的数据示例,以展示我的需求。
eval.num, eval.count, fitness, fitness.mean, green.h.0, green.v.0, offset.0
1 1 1500 1500 100 120 40
2 2 1000 1250 100 120 40
3 3 1250 1250 100 120 40
4 4 1000 1187.5 100 120 40
5 1 2000 2000 200 100 40
6 1 3000 3000 150 90 10
7 1 2000 2000 90 90 100
8 2 1800 1900 90 90 100
应选择第4行作为“最佳”。 然后,我希望按以下方式获取结果。
eval.num, eval.count, fitness, fitness.mean, green.h.0, green.v.0, offset.0
1 1 1500 1500 100 120 40
2 2 1000 1250 100 120 40
3 3 1250 1250 100 120 40
4 4 1000 1187.5 100 120 40
数据实际上并没有排序,而且还有许多其他列,但这就是概念。
谢谢!