Як відновити в r: заміна має x рядків, дані мають y
Повідомлення про помилку, яке може виникнути під час використання R:
Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",: replacement has 3 rows, data has 5
Ця помилка виникає, коли ви намагаєтеся додати новий стовпець до кадру даних, значення якого базуються на існуючому стовпці, але не можете спочатку створити новий стовпець.
У наступному прикладі показано, як вирішити цю помилку на практиці.
Як відтворити помилку
Припустимо, ми створюємо такий кадр даних у R:
#create data frame
df <- data. frame (conference=c('W', 'W', 'W', 'E', 'E'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34))
#view data frame
df
conference points assists
1 W 99 33
2 W 90 28
3 W 86 31
4 E 88 39
5 E 95 34
Тепер припустімо, що ми спробуємо додати новий стовпець до фрейму даних під назвою conf_full :
#attempt to create new column based on conference name
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '
Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",:
replacement has 3 rows, data has 5
Ми отримуємо помилку, оскільки назва змінної conf_full ще не існує, що означає, що ми ще не можемо призначити значення цьому стовпцю.
Як уникнути помилки
Щоб уникнути цієї помилки, ми можемо спочатку створити змінну conf_full і просто призначити їй значення NA:
#create conf_full variable
df$conf_full <- NA
Тепер, коли змінна існує, ми можемо присвоїти їй значення:
#create new column based on conference
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '
#view updated data frame
df
conference points assists conf_full
1 W 99 33 West
2 W 90 28 West
3 W 86 31 West
4 E 88 39 East
5 E 95 34 East
Зауважте, що цього разу ми не отримуємо жодних помилок, оскільки ми спочатку створили змінну conf_full , перш ніж намагатися призначити їй значення.
Додаткові ресурси
У наступних посібниках пояснюється, як виправити інші типові помилки в R:
Як виправити в R: аргументи містять різну кількість рядків
Як виправити в R: помилку під час вибору невикористаних аргументів
Як відремонтувати в R: заміна має нульову довжину