Заменить значения выходного столбца в пределах диапазона на «True» - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь написать функцию, включающую пакет 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<1.001]<- TRUE

Я хотел бы вывод, подобный следующему

1.015537 
1.002916
1.026634
1.014819

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 27 апреля 2018

Я бы посоветовал вместо этого создать новую переменную, но если вы хотите пойти по этому пути, вы можете принудительно 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)
...