R:为匹配ID分配值

时间:2016-12-30 03:24:53

标签: r

让我们假设我有一个包含3个不同变量ID的数据集。

RowID ,基本上是这样的:data $ rownumber = 1:nrow(data)。然后, ID ,这是公司标识符。最后, ID2 ,告诉用户哪个 RowID 是最近的

RowID = c(1, 2, 3, 4, 5, 6)
ID = c(123, 456, 789, 712, 409, 587)
Price = c(200, 300, 400, 100, 50, 10)
ID2 = c(2, 1, 1, 1, 3, 3)
df = data.frame(RowID, ID, Price, ID2)
df
RowID  ID   Price ID2
1      123   200   2
2      456   300   1
3      789   400   1
4      712   100   1
5      409    50   3
6      587    10   3

我想使用ID的值替换ID2的值,以便我的数据如下所示:

RowID  ID   Price ID2 ID3
1      123   200   2  456
2      456   300   1  123
3      789   400   1  123
4      712   100   1  123
5      409    50   3  789
6      587    10   3  789

我的数据真的很大,当然这只是它的外观的一个例子。

谢谢!

1 个答案:

答案 0 :(得分:0)

我们可以使用' ID2'作为数字索引

df$ID3 <- with(df, ID[ID2])
df
#   RowID  ID Price ID2 ID3
#1     1 123   200   2 456
#2     2 456   300   1 123
#3     3 789   400   1 123
#4     4 712   100   1 123
#5     5 409    50   3 789
#6     6 587    10   3 789