[R] missing values error in if statement

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Fri May 20 15:06:49 CEST 2022


Hello,

This is a frequent way of coding and a source for questions.


ifelse(test$CE == '2', 1, 0)


is equivalent to the much more performant


as.integer(test$CE == '2')   # or as.numeric


If the code still runs with errors, then those errors came from elsewhere.

Hope this helps,

Rui Barradas


Às 09:16 de 20/05/2022, Neha gupta escreveu:
> I am sorry.. The code is here and data is provided at the end of this
> email.
> 
> data = readARFF("aho.arff")
> 
> index= sample(1:nrow(data), 0.7*nrow(data))
> train= data[index,]
> test= data[-index,]
> 
> task = TaskClassif$new("data", backend = train, target = "isKilled")
> learner= lrn("classif.randomForest", predict_type = "prob")
> model= learner$train(task )
> 
> ///explainer is created to identify a bias in a particular feature i.e. CE
> feature in this case
> 
> explainer = explain_mlr3(model,
>                           data = test[,-15],
>                           y = as.numeric(test$isKilled)-1,
>                           label="RF")
> prot <- ifelse(test$CE == '2', 1, 0)       /// Error comes here
> privileged <- '1'
> 
> 
> fc= fairness_check(explainer,
>                            protected = prot,
>                     privileged = privileged)
> plot(fc)
> 
> 
> ////////////////////////////////////////// my data is
> 
> dput(test)
> structure(list(DepthTree = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
> 2, 2, 2, 1, 1, 1, 1, 2, 1), NumSubclass = c(0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2), McCabe = c(1, 1, 1,
> 3, 3, 3, 3, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 1, 2, 2, 1,
> 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5,
> 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 5,
> 5, 5, 5, 5, 5, 5, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
> 5, 5, 5, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 4, 4, 1, 1, 2, 2, 2, 2,
> 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1), LOC = c(3,
> 3, 4, 10, 10, 10, 10, 4, 5, 22, 22, 22, 22, 22, 22, 22, 22, 3,
> 3, 3, 3, 8, 8, 4, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
> 23, 23, 23, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 8, 8,
> 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20,
> 20, 20, 20, 20, 20, 7, 7, 7, 7, 18, 18, 18, 18, 18, 18, 15, 15,
> 15, 15, 15, 15, 15, 15, 6, 6, 6, 15, 15, 15, 15, 15, 15, 9, 9,
> 9, 9, 9, 9, 9, 4, 4, 3, 3, 3, 3, 4, 4, 4, 5, 8, 8, 3, 3, 3, 7,
> 7, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 3, 3, 3, 4, 4, 4, 4,
> 8, 8, 8, 8, 4, 3), DepthNested = c(1, 1, 1, 2, 2, 2, 2, 1, 2,
> 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 2, 2, 1, 3, 3, 3, 3, 3, 3,
> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1,
> 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1), CA = c(1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
> 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1), CE = c(2, 2, 2, 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2), Instability = c(0.667,
> 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667,
> 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667,
> 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667,
> 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667,
> 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667,
> 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667,
> 0.667, 0.667, 0.667, 0.667, 0.667, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667, 0.667,
> 0.667, 0.667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.667, 0.667, 0.667,
> 0.667, 0.667, 0.667, 0.667, 0, 0, 0, 0, 0.667, 0.667), numCovered = c(0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 54, 54,
> 54, 123, 54, 54, 39, 84, 54, 54, 15, 138, 189, 189, 189, 27,
> 51, 33, 6, 27, 27, 150, 150, 150, 54, 150, 54, 54, 150, 117,
> 51, 66, 60, 15, 15, 72, 12, 45, 255, 255, 129, 129, 129, 0, 129,
> 0, 0, 6, 6, 6, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 12,
> 12, 12, 18, 12, 12, 48, 12, 1557, 48, 12, 171, 0, 0, 0, 141,
> 141, 45, 141, 18, 39), operator = structure(c(4L, 13L, 13L, 1L,
> 4L, 9L, 12L, 4L, 11L, 4L, 7L, 8L, 8L, 8L, 8L, 8L, 9L, 7L, 8L,
> 8L, 6L, 7L, 8L, 4L, 1L, 2L, 3L, 4L, 7L, 8L, 8L, 8L, 8L, 8L, 9L,
> 11L, 12L, 12L, 4L, 6L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 6L, 9L,
> 9L, 4L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 10L, 1L, 1L, 1L, 7L, 7L,
> 8L, 8L, 8L, 8L, 8L, 13L, 13L, 7L, 8L, 8L, 9L, 8L, 8L, 8L, 8L,
> 9L, 10L, 1L, 4L, 4L, 6L, 7L, 8L, 8L, 8L, 9L, 10L, 10L, 7L, 8L,
> 8L, 10L, 11L, 11L, 7L, 8L, 4L, 8L, 9L, 10L, 10L, 4L, 10L, 7L,
> 7L, 10L, 6L, 8L, 8L, 10L, 8L, 8L, 10L, 9L, 8L, 10L, 7L, 7L, 13L,
> 2L, 2L, 2L, 8L, 8L, 8L, 8L, 8L, 11L, 10L, 10L, 13L, 13L, 8L,
> 8L, 8L, 6L, 7L, 8L, 10L, 13L, 13L), .Label = c("T0", "T1", "T2",
> "T3", "T4", "T5", "T6", "T7", "T8", "T9", "T10", "T11", "T12",
> "T13", "T14", "T15"), class = "factor"), methodReturn = structure(c(2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
> 4L, 4L, 4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 4L,
> 4L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
> 4L, 4L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 1L, 4L,
> 4L, 4L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 2L, 2L, 4L, 4L, 4L, 4L,
> 4L, 4L, 4L, 4L, 3L, 3L, 2L, 2L, 4L, 4L, 4L, 1L, 1L, 1L, 1L, 2L,
> 2L), .Label = c("I", "V", "Z", "method", "D", "[D", "[[D", "J",
> "[I", "C", "[J", "[C", "[S", "F", "[F", "[B", "S", "B", "[Z",
> "[[S", "[[B", "[[Z"), class = "factor"), numTestsCover = c(16,
> 16, 16, 15, 15, 16, 15, 4, 16, 16, 15, 16, 15, 15, 15, 15, 15,
> 3, 3, 3, 2, 16, 11, 4, 16, 3, 16, 16, 16, 16, 16, 4, 16, 16,
> 16, 4, 16, 16, 3, 3, 3, 2, 4, 3, 2, 1, 4, 1, 15, 16, 15, 2, 3,
> 2, 3, 3, 2, 2, 2, 3, 4, 5, 5, 5, 4, 5, 5, 4, 4, 5, 5, 4, 4, 4,
> 4, 4, 4, 4, 4, 2, 4, 4, 4, 4, 4, 5, 4, 5, 5, 4, 4, 4, 4, 4, 4,
> 4, 4, 3, 4, 4, 4, 6, 6, 6, 0, 6, 0, 0, 2, 2, 2, 7, 0, 0, 0, 15,
> 16, 16, 16, 15, 17, 17, 17, 15, 5, 4, 4, 4, 3, 4, 4, 3, 4, 16,
> 16, 4, 17, 0, 0, 0, 5, 5, 3, 5, 2, 3), mutantAssert = c(55, 55,
> 55, 55, 55, 55, 55, 13, 55, 55, 55, 55, 55, 55, 55, 55, 55, 9,
> 9, 9, 9, 55, 41, 13, 55, 5, 55, 55, 55, 55, 55, 13, 55, 55, 55,
> 13, 55, 55, 13, 13, 13, 8, 13, 13, 8, 4, 13, 4, 55, 55, 55, 9,
> 9, 9, 9, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
> 9, 9, 9, 9, 9, 9, 5, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
> 9, 9, 9, 6, 9, 9, 9, 14, 14, 14, 0, 14, 0, 0, 2, 2, 2, 15, 0,
> 0, 0, 55, 58, 58, 55, 55, 58, 58, 58, 55, 9, 6, 6, 6, 6, 6, 6,
> 6, 6, 55, 55, 13, 57, 0, 0, 0, 11, 11, 7, 11, 9, 9), classAssert = c(3,
> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10,
> 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3,
> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 1, 1, 1, 1, 3, 3,
> 3, 3, 0, 0), isKilled = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L,
> 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L,
> 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
> 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L,
> 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 1L), .Label = c("yes",
> "no"), class = "factor")), row.names = c(3L, 4L, 5L, 7L, 9L,
> 17L, 20L, 21L, 26L, 28L, 32L, 33L, 40L, 43L, 45L, 49L, 54L, 62L,
> 64L, 65L, 70L, 75L, 77L, 81L, 84L, 86L, 88L, 89L, 93L, 95L, 97L,
> 99L, 101L, 102L, 106L, 111L, 112L, 113L, 118L, 122L, 125L, 128L,
> 129L, 134L, 141L, 142L, 143L, 146L, 156L, 168L, 169L, 174L, 178L,
> 179L, 182L, 184L, 185L, 192L, 193L, 195L, 197L, 198L, 199L, 203L,
> 205L, 209L, 211L, 215L, 216L, 218L, 220L, 224L, 227L, 228L, 230L,
> 233L, 243L, 244L, 246L, 247L, 251L, 252L, 259L, 262L, 263L, 265L,
> 270L, 273L, 274L, 275L, 284L, 285L, 286L, 291L, 296L, 297L, 300L,
> 301L, 306L, 314L, 316L, 322L, 328L, 331L, 332L, 333L, 336L, 341L,
> 346L, 347L, 348L, 360L, 363L, 366L, 367L, 383L, 392L, 395L, 398L,
> 404L, 408L, 409L, 410L, 420L, 421L, 426L, 428L, 434L, 437L, 438L,
> 440L, 441L, 447L, 449L, 450L, 452L, 454L, 457L, 458L, 459L, 463L,
> 465L, 469L, 471L, 472L, 483L), class = "data.frame")
> 
> On Fri, May 20, 2022 at 12:20 AM Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
> wrote:
> 
>> Not reproducible. Posted HTML.
>>
>> On May 19, 2022 2:30:58 PM PDT, Neha gupta <neha.bologna90 using gmail.com>
>> wrote:
>>> Why do I get the following error when my variable in the 'if statement'
>> has
>>> no missing values.
>>>
>>> I check with is.na(my variable) and it has no missing values
>>>
>>> Error in if (fraction <= 1) { : missing value where TRUE/FALSE needed
>>>
>>> Best regards
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>
>> --
>> Sent from my phone. Please excuse my brevity.
>>
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list