Як виправити: кількість елементів для заміни не кратна довжині заміни
Помилка, з якою ви можете зіткнутися в R:
Warning message: number of items to replace is not a multiple of replacement length
Ця помилка виникає, коли ви намагаєтеся замінити певну кількість елементів у стовпці вектора або кадру даних (припустимо, 3 елементи) на іншу кількість елементів (припустимо, 6 елементів).
Цей посібник пояснює, як саме виправити цю помилку.
Як відтворити помилку
Припустимо, що ми маємо наступний кадр даних у R з декількома відсутніми значеннями в першому стовпці:
#create data frame df <- data. frame (a=c(3, NA, 7, NA, NA, 14), b=c(4, 4, 5, 12, 13, 18)) #view data frame df ab 1 3 4 2 NA 4 3 7 5 4 NA 12 5 NA 13 6 14 18
Тепер припустимо, що ми спробуємо замінити відсутні значення в першому стовпці значеннями в другому стовпці:
#attempt to replace missing values in first column with values in second column df$a[is. na (df$a)] <- df$b Warning message: In df$a[is.na(df$a)] <- df$b: number of items to replace is not a multiple of replacement length
Ми отримуємо повідомлення про помилку, оскільки ми намагалися замінити 3 відсутні значення в першому стовпці на 6 значень у другому стовпці.
Як виправити помилку
Найпростіший спосіб виправити цю помилку — просто використати оператор ifelse() :
#replace missing values in column 'a' with corresponding values in column 'b'
df$a <- ifelse(is. na (df$a), df$b, df$a)
#view updated data frame
df
ab
1 3 4
2 4 4
3 7 5
4 12 12
5 13 13
6 14 18
Цей оператор ifelse() перевіряє, чи значення стовпця «a» порожнє. Якщо так, воно замінюється відповідним значенням у стовпці “b”, інакше воно залишається без.
Ще один спосіб виправити цю помилку – просто замінити всі відсутні значення певним числом:
#replace all missing values in column 'a' with zero
df$a[is. na (df$a)] <- 0
#view updated data frame
df
ab
1 3 4
2 0 4
3 7 5
4 0 12
5 0 13
6 14 18
За допомогою цього методу кожне пропущене значення в стовпці «а» замінюється нулем.
Додаткові ресурси
Як виправити в R: NAs, введені примусово
Як відремонтувати в R: індекс поза межами
Як виправити в R: довжина довшого об’єкта не є кратною довжині коротшого об’єкта