R-код для определения комбинации ni и nj, которые создают наименьший LSD, и присваивания их переменной best.n_i и best.n_j
Вычислить значения ЛСД из (lsd <- 2.085963447 * sqrt (0.124611 * (1 / n_i + 1 / n_j))), для значений ni из 2,.,, 8 и NJ из 8,.,,, 2, создав два разных вектора для ni и nj. Используйте их для вычисления LSD для комбинаций (ni, nj) = (2, 8), (3, 7),.,,, (7, 3), (8, 2). Вы должны быть в состоянии сделать это, переопределив n_i и n_j из первого упражнения и скопировав код, который присваивает значение lsd.
Напишите код для определения комбинации ni и nj, которые производят наименьший LSD, и присвойте их переменным best.n_i и best.n_j. Назначьте минимальное значение LSD для best.LSD. (Подсказка - используйте функции min и which).
Решение: я решил это частично, но я не в состоянии понять, как найти best.n_i и best.n_j. Я знаю, что мне нужно использовать какую функцию. Вот мое решение:
n_i<-c(2:8)
n_i
n_j<-c(8:2)
n_j
print(lsd <- 2.085963447*sqrt(0.124611*(1/n_i + 1/n_j)))
best.lsd <-min((lsd <- 2.085963447*sqrt(0.124611*(1/n_i + 1/n_j))))
best.lsd
best.n_i <- which.min(lsd <- 2.085963447*sqrt(0.124611*(1/n_i + 1/n_j)))
2 ответа
В вашем коде best.n_i
говорит вам положение в векторе с минимальным значением. Это приводит к 4, что означает 4-й элемент. Таким образом, чтобы получить лучшее значение для n_i
ты используешь:
n_i[best.n_i]
что должно привести к 5. Точно так же лучшее значение для n_j
было бы:
n_j[best.n_i]
best.lsd <- Inf
best.n_i <- Inf
best.n_j <- Inf
Назначьте переменные
n_i <- 2: 8
n_j <- 8: 2
Вычислить вектор lsd
lsd <- 2.085963447 * sqrt (0.124611 * (1 / n_i + 1 / n_j))
Назначьте связанные векторы для lsd_df
lsd_df <- data.frame (n_i, n_j, lsd)
Подмножество lsd_df для поиска минимальной комбинации n_i и n_j
lsd_df <- lsd_df [which.min (lsd_df $ lsd),]
Присвойте минимальные значения именам связанных переменных
best.lsd <- lsd_df $ lsd
best.n_i <- as.numeric (lsd_df $ n_i)
best.n_j <- as.numeric (lsd_df $ n_j)