0

始点と終点の間の距離を持つデータフレームがあります。開始点は行にあり、終了点は列にあります。次に、それらを1つずつ印刷します(始点端点距離改行)。欠落値(NA)は省略してください。

これは私のデータフレームです:

          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

どんな助けでも大歓迎です。

スギ

4

1 に答える 1

1

マークを逃した場合は、 を使用dputしてデータのサンプルを提供してください。ただし、データが次のようになっていると仮定します。

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))

パッケージmeltから使用して、余分な行を で削除できます。reshape2na.omit

> 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
于 2012-07-30T20:11:30.143 に答える