我有一個數據框,我想將ID的Score值與New.Score匹配。根據每個組的其他列匹配列的值
ID 123
在組1中的得分爲5
,但在組2中它的得分爲1
。我只想使用每個組內出現的分數。
這是我的DF:
Group ID Score New.ID New.Score
1 123 5 456
1 456 1 789
1 789 0 123
2 555 1 999
2 123 1 123
2 999 0 555
而我想要的輸出:
Group ID Score New.ID New.Score
1 123 5 456 1
1 456 1 789 0
1 789 0 123 5
2 555 1 999 0
2 123 1 123 1
2 999 0 555 1
我試着用ave
:
mtch <- function(x) {
dt[match(x,dt$ID),"Score"]
}
dt$New.Score <- ave(dt$New.ID, dt$Group, FUN = mtch)
但它給我的NA值。
代碼DF創作:
Group <- as.factor(c(1, 1, 1, 2, 2, 2))
ID <- as.factor(c(123,456,789, 555, 123, 999))
Score <- c(5,1,0, 1,1,0)
dt <- data.frame(Group, ID, Score, New.ID)
的'New.ID'列缺少所以'DT < - data.frame(...)'將無法運行。 –