# Two Ordered Vectors
sequenceA <- c(1, 2, NA, 4)
sequenceB <- c(4, 2, NA, 1)
df <- data.frame(sequenceA, sequenceB)
sum(ifelse(!is.na(df[1,]), 888, 1) == ifelse(!is.na(df[2,]), 999, 1)) # Number of NA values that are in the same position
#? Number of non-NA values that are in the same position
Допустим, у меня есть два наблюдения в кадре данных, и я хочу сравнить, насколько они похожи. Я хочу знать конкретно две вещи: сколько пропущенных значений для указанных c переменных у них общих и сколько не пропущенных значений для указанных c переменных у них общих .
Из того, что я вижу, ни функции не пересекаются , % в% или match , функции не служат для этой цели, поскольку они не учитывают порядок значения, только если они находятся в наборе.
Я пришел с однострочным решением для проверки значений NA, заменив его числом (в противном случае он просто возвращает NA). Затем я хочу сравнить только перекрытия между значениями, не относящимися к NA, поэтому я хотел бы заменить NA для sequenceA одним значением-заполнителем (например, "555") и NA для sequenceB с одним другим значением заполнителя (например, "666").
Я ищу решение для одной строки: если был эквивалент ifelse без else или ничего не делать Я легко это вижу. Большинство подобных вопросов, которые касаются этого, получают ответ, просто поднабор вектора и переназначение ( <- </strong>) значения или использование команд if () {} , которые делают решение слишком длинное (особенно если это то, что я обычно хочу сделать). Я пропускаю оптимальное решение хорошей практики в R для такого рода проблемы?