2014-05-20 2 views
1

많은 csv 데이터 파일을 하나의 csv 파일로 컴파일 한 다음 몇 가지 간단한 계산 결과를 포함하는 출력 파일을 생성하도록 설계된 r 언어로 작성된 프로그램을 실행 중입니다. 결합 된 파일에서 선택된 변수. 나중의 프로세스는 결합 된 파일을 입력으로 사용하고 변수를 선택하고 필요한 값의 종류를 지정하여 수행됩니다. 이 설명에 덧붙여 데이터 파일은 매일 얻어지며 r 프로그램을 통해 선택한 시간 간격으로 데이터의 최소, 최대, 평균 또는 합계와 같은 일부 분석을 얻습니다.r에 오류 메시지 : 집계 할 행이 없습니다

이 프로그램에서 가지고있는 문제로 이동하면 프로그램은 일반적으로 결합 된 CSV 파일을 많은 문제없이 생성 할 수 있지만 출력 파일을 생성 할 때 프로그램에서 집계를 생성하는 경우가 있습니다 오류 메시지 aggregate.date.frame에

오류 (... MF [1L, MF [-1L] = FUN FUN) 행이

이 오류 메시지 응집 않음 만 일부 결합 된 데이터 파일에 대해 표시되며 이러한 문제를 일으키는 결합 된 CSV 파일의 데이터가 아무런 차이점을 보이지 않기 때문에 더 혼란 스럽습니다. 이 문제를 일으키지 않는 결합 된 파일. 그러나 현재 프로그램이 일반적으로 많은 분석 사례에서 잘 작동하므로 프로그램 대신 결합 된 데이터 CSV 파일에 이상이 있어야한다고 생각합니다.

기본적으로 프로그램은 집계 함수를 사용하여 출력 파일을 계산합니다.

나는 r을 사용하는 데 아주 익숙하며, 내가 사용하는 프로그램은 여러 단계로 구성되어 있으므로 내 설명이 다소 불명확하면 사과드립니다.

적어도 이러한 집계 오류의 가능한 원인을 알고 싶습니다. 미리 감사드립니다.

+0

'aggregate.data.frame'이 아니라'aggregate.data.frame'을 의미한다고 생각합니까? – scottkosty

답변

1

이 오류는 집계에 전달 된 개체 (x과 일치하는 개체)가 0 인 행 때문에 발생합니다.

다음은 함수의 첫 번째 10 개 행을 제공합니다 : 당신이 aggregate를 호출하기 전에

> head(aggregate.data.frame, 10) 

1 function (x, by, FUN, ..., simplify = TRUE)        
2 {                   
3  if (!is.data.frame(x))             
4   x <- as.data.frame(x)            
5  FUN <- match.fun(FUN)             
6  if (NROW(x) == 0L)              
7   stop("no rows to aggregate")          
8  if (NCOL(x) == 0L) {             
9   x <- data.frame(x = rep(1, NROW(x)))        
10   return(aggregate.data.frame(x, by, function(x) 0L)[seq_along(by)]) 

때문에, 개체에 대한 NROW를 호출하고 제로의 경우는 당신을 말할 것이다. 이는 몇 가지 이유로 인해 발생할 수 있지만 재현 할 수없는 예가 없으면 알기가 어렵습니다. 한 가지 이유는 x이 잘못된 인수와 일치하는 것일 수 있습니다. 하지만 CSV 파일 중 일부가 제대로 작동한다면 아마 그렇지 않을 것입니다. 아마도 서브셋 때문에 객체가 실제로 0 행을 가질 가능성이 더 큽니다.

0

aggregate.data.frame()의 소스 코드를 보면 함수 이름 aggregate.data.frame을 입력하기 만하면 NROW(x)이 0이면이 오류가 발생합니다. 이것은 mf[1]에 차원과 길이가 없거나 첫 번째 차원이 0 인 경우에 발생합니다.

더 이상 컨텍스트가 없으면 어떻게 발생하는지 말할 수 없지만 디버깅에 대한 아이디어를 얻기 위해 Hadley Wickham's online book을 살펴보십시오.

관련 문제