2012-07-30 3 views
0

시작 지점과 끝 지점 사이에 거리가있는 데이터 프레임이 있습니다. 시작점은 행에, 끝점은 열에 있습니다. 이제 저는 그것들을 하나 하나씩 출력하길 원합니다 (시작점 종점 거리 뉴 라인). 누락 된 값 (NAs)은 생략해야합니다.R 데이터 프레임을 항목 목록으로 내 보냅니다.

이 내 데이터 프레임 :

  EndPoint 
    StartPoint TX001 TX002 TX003 
     TX002 37.4  NA  NA 
     TX003 NA 14.78704  NA 
     TX005 NA  NA 60.78947 

내가 얻고 싶은 것은 :

TX002 TX001 37.4 
    TX003 TX002 14.78704 
    TX005 TX003 60.78947 

어떤 도움이 크게 감사합니다.

스기 내가 마크를 놓친 경우

+2

그것은 데이터 프레임이 어떻게 구성되어 있는지 불분명'dput (mydata을)를주세요 '(또는 어떤 데이터 프레임의 이름입니다) 우리가 –

답변

1

, 데이터의 샘플을 제공하기 위해 dput을 사용하십시오. 그러나 데이터를 가정하는 것은 다음과 같습니다 : 당신은 reshape2 패키지에서 melt을 사용하고 na.omit와 여분의 행을 삭제할 수 있습니다

dat <- structure(list(StartPoint = c("TX002", "TX003", "TX005"), TX001 = c(37.4, 
NA, NA), TX002 = c(NA, 14.78704, NA), TX003 = c(NA, NA, 60.78947 
)), .Names = c("StartPoint", "TX001", "TX002", "TX003"), class = "data.frame", row.names = c(NA, 
-3L)) 

.

> na.omit(melt(dat, 
       id.var='StartPoint', 
       variable.name='EndPoint', 
       value.name='Distance')) 

    StartPoint EndPoint Distance 
1  TX002 TX001 37.40000 
5  TX003 TX002 14.78704 
9  TX005 TX003 60.78947 
+0

완벽하게 재현 할 수있는 결과를 게시, 감사 도움이 많이 필요하다. – sugo

관련 문제