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에서 복구하는 방법: 교체 길이가 0입니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다