Как восстановить в 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: замена имеет нулевую длину

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *