Допустим, это ваши данные:
library(data.table)
dt= data.table(genotype=sample(1:10,size=20,replace=T),
location=sample(1:6,size=20,replace=T),
yield=round(runif(20,1000,1500)))
Затем, первое, что нужно сделать, это взять среднее значение урожайность , генотип :
m1 = dt[,.(mean_6_locations=mean(yield)),by=genotype]
После этого, предполагая, что вы знаете, какие местоположения следует исключить, вот среднее из 5 и 4 местоположений соответственно:
m2 = dt[!location %in% c(10),.(mean_5_locations=mean(yield)),by=genotype]
m3 = dt[!location %in% c(5,10),.(mean_4_locations=mean(yield)),by=genotype]
Обратите внимание, что местоположение 10 исключено для среднего значения из 5 местоположенийаналогично местоположения 5 и 10 исключены для среднего значения из 4 местоположений.
Наконец, вам нужно объединить все в одну таблицу:
m12 = merge(m1,m2)
m123 = merge(m12,m3)
print(m123)