我有以下示例性數據使用可變的列名中dplyr(DO)
d.1 = data.frame(id=c(1,1,2,3,3), date=c(2001,2002,2001,2001,2003), measure=c(1:5))
d.2 = data.frame(id=c(1,2,2,3,3), date=c(2001,2002,2003,2002,2008), measure=c(1:5))
d = merge(d.1,d.2, all=T, by="id")
d.1
和d.2
兩種測量和我需要每id
每個測量之一。測量結果應儘可能接近。我可以做到這一點dplyr
由
require(dplyr)
d = d %>%
group_by(id) %>%
do(.[which.min(abs(.$date.x-.$date.y)),])
的問題是如何,我可以使用dplyr
如果日期列的名稱保存在一個變量像name.x="date.x"
和name.y="date.y"
,因爲我不能用
...
do(.[which.min(abs(.[, name.x]-.[, name.y])),])
....
我試着用eval
,as.symbol
ANS東西一樣,要找到解決anaother,但我不能想出一個解決方案...