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)

Другие вопросы по тегам