Одно сообщение об ошибке, с которым вы можете столкнуться при использовании 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: замена имеет нулевую длину