I am trying to create a column ID based on logical statements for values of other columns. For example, in the following dataframe
test <- st
It sounds like you want the ifelse statement to interpret NA values as FALSE instead of NA in the comparison. I use the following functions to handle this situation so I don't have to continuously handle the NA situation:
falseifNA <- function(x){
ifelse(is.na(x), FALSE, x)
}
ifelse2 <- function(x, a, b){
ifelse(falseifNA(x), a, b)
}
You could also combine these functions into one to be more efficient. So to return the result you want, you could use:
test$ID <- ifelse2(is.na(test$time) | test$type == "A", NA, "1")