R에서 수정하는 방법: dim(x)는 양수 길이를 가져야 합니다.


R에서 발생할 수 있는 오류는 다음과 같습니다.

 Error in apply(df$var1, 2, mean): dim(X) must have a positive length 

이 오류는 데이터 프레임이나 행렬 대신 벡터를 인수로 제공하면서 데이터 프레임이나 행렬의 열에 대한 메트릭을 계산하기 위해 apply() 함수를 사용하려고 할 때 발생합니다.

이 튜토리얼에서는 이 오류를 수정하는 방법을 정확하게 설명합니다.

오류를 재현하는 방법

R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (points=c(99, 97, 104, 79, 84, 88, 91, 99),
                 rebounds=c(34, 40, 41, 38, 29, 30, 22, 25),
                 blocks=c(12, 8, 8, 7, 8, 11, 6, 7))

#view data frame
df

  points rebound blocks
1 99 34 12
2 97 40 8
3 104 41 8
4 79 38 7
5 84 29 8
6 88 30 11
7 91 22 6
8 99 25 7

이제 “points” 열의 평균값을 계산하기 위해 apply() 함수를 사용한다고 가정해 보겠습니다.

 #attempt to calculate mean of 'points' column
apply(df$points, 2, mean)

Error in apply(df$points, 2, mean): dim(X) must have a positive length

Apply() 함수를 데이터 프레임이나 행렬에 적용해야 하기 때문에 오류가 발생하는데, 이 예제에서는 데이터 프레임의 특정 열에 적용하려고 합니다.

오류를 수정하는 방법

이 오류를 해결하는 방법은 다음과 같이 단순히 Apply() 함수에 데이터 프레임 이름을 제공하는 것입니다.

 #calculate mean of every column in data frame
apply(df, 2, mean)

  points rebound blocks 
  92,625 32,375 8,375 

출력에서 데이터 프레임의 각 열의 평균 값을 볼 수 있습니다. 예를 들어 ‘포인트’ 열의 평균값은 92,625 입니다.

또한 이 함수를 사용하여 데이터 프레임에 있는 특정 값의 평균만 찾을 수도 있습니다.

 #calculate mean of 'points' and 'blocks' column in data frame
apply(df[c(' points ', ' blocks ')], 2, mean)

point blocks 
92,625 8,375

마지막으로, 단일 열의 평균을 찾으려면 apply() 함수를 전혀 사용하지 않고 Mean() 함수를 사용할 수 있습니다.

 #calculate mean of 'points' column
mean(df$points)

[1] 92,625

추가 리소스

다음 튜토리얼에서는 R의 다른 일반적인 오류를 해결하는 방법을 설명합니다.

R에서 수정하는 방법: 이름이 이전 이름과 일치하지 않습니다.
R에서 수정하는 방법: 긴 물체의 길이가 더 짧은 물체 길이의 배수가 아닙니다.
R에서 수정하는 방법: 대비는 수준이 2개 이상인 요인에만 적용할 수 있습니다.

의견을 추가하다

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