我有一个非常大的数据集,我正在寻找最快,最有效的方法来根据两列中的值对数据帧进行排序和赋予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范围内,所以它有所不同。