排序数据帧和添加特殊ID的最有效方法是什么?

时间:2017-03-23 21:39:28

标签: r sorting

我有一个非常大的数据集,我正在寻找最快,最有效的方法来根据两列中的值对数据帧进行排序和赋予id。我有一个数据框,其中列"value 1"具有唯一值,而列"value 2"没有。列"absdiff"给出了这两列之间的差异。我想在数据框中添加ID作为第一列,它给出了与相应的"组/值"的最近距离。在"value2"列中。所以,这就是我的例子:

data <- data.frame(value1 = c(5,5.1,5.2,4.9,8.2,8.0,13,13.3,18), 
                   value2 = c(5,5,5,5,8,8,13,13,18))
data$absdiff <- with(data, c(abs(data$value1 - data$value2)))

  value1 value2 absdiff
  5.00      5    0.00
  5.10      5    0.10
  5.20      5    0.20
  4.89      5    0.11
  8.20      8    0.20
  8.00      8    0.00
 13.00     13    0.00
 13.30     13    0.30
 18.00     18    0.00

以及我想要的是(注意ID排序时略有不同的顺序):

ID  value1 value2 absdiff
1   5.00      5    0.00
2   5.10      5    0.10
3   4.89      5    0.11
4   5.20      5    0.20
1   8.00      8    0.00
2   8.20      8    0.20
1  13.00     13    0.00
2  13.30     13    0.30
1  18.00     18    0.00

我知道有plyr,申请等。但最有效的方法是什么,还有其他人吗?我拥有的数据集在GB范围内,所以它有所不同。

0 个答案:

没有答案