любая помощь с этой проблемой R будет невероятно оценена !! Заранее приносим свои извинения за i) неправильный синтаксис / форматирование. ii) этот вопрос, вероятно, задавался другими способами, которые я не могу найти. iii) Мне очень трудно описать словами (или с помощью упрощенных выражений) то, что я пытаюсь достичь ...
В двух словах, преобразование NA в 0 действительно несложно, однако преобразование НК в конкретном столбце c фрейма данных при двух или более условиях «если» - это совсем другое дело.
Мой фрейм данных - это журнал того, сколько раз аналитики опаздывали со своим типом отчета в прошлом году ( все сделано):
LateReporters
Analyst Name Report Type Secured-Late Unsecured-Late
1 Nick Unsecured NA NA
2 John Unsecured NA 3
3 Emily Secured 4 NA
4 Karen Secured NA NA
5 Leslie Unsec&Sec NA 4
6 Joanna Unsec&Sec 2 NA
7 Scott Unsec&Sec NA NA
8 Stuart Unsec&Sec 1 3
Это то, чего я пытаюсь достичь:
LateReporters
Analyst Name Report Type Secured-Late Unsecured-Late
1 Nick Unsecured NA 0
2 John Unsecured NA 3
3 Emily Secured 4 NA
4 Karen Secured 0 NA
5 Leslie Unsec&Sec 0 4
6 Joanna Unsec&Sec 2 0
7 Scott Unsec&Sec 0 0
8 Stuart Unsec&Sec 1 3
Правила:
1) Если аналитик сообщает «Незащищенный» отчет Введите только ', тогда любые НП в столбце «Незащищенное-позднее» должны быть изменены на 0, поскольку они действительно никогда не опаздывали, а все НП в столбце «Защищено-поздно» должны оставаться как НП (поскольку они не сообщают это).
1) Если аналитик сообщает только «Защищенный» «Тип отчета», тогда любые НП в столбце «Защищено-поздно» должны быть изменены на 0, поскольку они действительно никогда не опаздывали - и любые НК в столбце "Незащищенные-поздно" должны остаются как NA (поскольку они не сообщают об этом).
3) Если аналитик сообщает "Unsec & Se c" 'Report Type', то любые NA в 'Unsecured-Late' и 'Secure- Столбец «Поздно» должен быть изменен на 0, так как они действительно никогда не опаздывали.
Код попытки (и многие многие другие):
LateReporters <- if (LateReporters$'Report Type' == "Unsecured" & LateReporters$'Unsecured-Late == is.na(LateReporters$Unsecured-Late)) { LateReporter$Unsecured-Late [which(is.na(LateReporters$Unsecured-Late))] <- 0
}
LateReporters <- if (LateReporters$'Report Type' == "Secured" & LateReporters$'Secured-Late == is.na(LateReporters$Secured-Late)) { LateReporter$Secured-Late [which(is.na(LateReporters$Secured-Late))] <- 0
}
LateReporters <- if (LateReporters$'Report Type' == "Unsec&Sec" & LateReporters$'Unsecured-Late == is.na(LateReporters$secured) | LateReporters$'Secured-Late == is.na(LateReporters$secured) ) { LateReporter$Unsecured-Late [which(is.na(LateReporters$Unsecured-Late))] & LateReporter$Secured-Late [which(is.na(LateReporters$Secured-Late))] <- 0
}
Любые предложения, в которых я ошибаюсь, будут будь отличным.
Большое спасибо