0

我有一个数据框,其中包含起点和终点之间的距离。起点在行中,终点在列中。现在我想让它们一一打印(起点终点距离换行符)。应省略缺失值 (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))

您可以meltreshape2包中使用,然后使用na.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 回答