0
У меня есть большой фрейм данных, который содержит множество строковых значений, которые я хочу очистить.Условные мутации мутаций данных
Пример:
students <- data.frame(name = c("John", "Jerry", "Bill", "Tom", "Mary", "Bill"),
class = c("A", "B", "-", "#NA", "A", "low"), stringsAsFactors = FALSE)
Я хочу, чтобы каждый студент, который не в классе А, В или С, чтобы быть установлен в D. Мое текущее решение:
'%!in%' <- function(x,y)!('%in%'(x,y))
for(i in 1:nrow(students)) {
if(students$class[i] %!in% c("A", "B", "C")) {
students$class[i] <- "D"
}
}
Есть ли лучше чем это, предпочтительно с трубопроводом, так как существует такое количество столбцов?
Спасибо!
Другой способ заключается в '' replace', студенты $ класса
Или очень похоже 'студенты%>% mutate (класс = if_else (класс% в% LETTERS [1: 3], класс," D "))' – Axeman
Также см. forcats :: fct_other'. – Axeman