Заменить значения выходного столбца в пределах диапазона на "True"
Я пытаюсь написать функцию, включающую пакет MICE, и хочу указать, сходятся ли цепочки Маркова в вменяемом наборе данных по критериям статистики Гельмана и Рубина, используемой в Rhat.mice (из пакета "miceadds"), заменяя все значения между 0,999 и 1,001 в Rhat.M.imp и Rhat.Var.imp с "TRUE". Для справки вот пример вывода Rhat.mice:
> testagain<- Rhat.mice(ini)
> variable MissProp Rhat.M.imp Rhat.Var.imp
>1 agep 5.681818 1.015537 1.021311
>2 alcgp 18.181818 1.002916 1.007297
>3 tobgp 17.045455 1.026634 1.042405
>4 disease 1.136364 1.014819 NA
И вот код, который я пытался использовать (я получил ошибку Ошибка: неожиданное '<' в "testagain $ Rhat.M.imp [(0.999
testagain$Rhat.M.imp[(0.999<testagain$Rhat.M.imp<1.001]<- TRUE
Я хотел бы вывод, как следующий
1.015537
1.002916
1.026634
1.014819
Любая помощь высоко ценится!
1 ответ
Я бы посоветовал вместо этого создать новую переменную, но если вы хотите пойти по этому пути, вы можете заставить Rhat.M.imp
в символьную переменную.
df <- read.table(text = t, header = T, strip.white = TRUE)
library(dplyr)
df %>% mutate(
Rhat.M.imp = case_when(1 < Rhat.M.imp & Rhat.M.imp < 1.01~as.character(TRUE), TRUE~as.character(Rhat.M.imp))
)
# variable MissProp Rhat.M.imp Rhat.Var.imp
# 1 agep 5.682 1.015537 1.021
# 2 alcgp 18.182 TRUE 1.007
# 3 tobgp 17.045 1.026634 1.042
# 4 disease 1.136 1.014819 NA
Вот набор данных.
t <- "variable MissProp Rhat.M.imp Rhat.Var.imp
agep 5.681818 1.015537 1.021311
alcgp 18.181818 1.002916 1.007297
tobgp 17.045455 1.026634 1.042405
disease 1.136364 1.014819 NA"
df <- read.table(text = t, header = T, strip.white = TRUE)