说我有:
df = data.frame(loc=c("The White House", "Lancaster, PA", "Durham, NC"),
id=c(111,222,333))
我想将该位置传递给地理编码例程(我已经工作)以及ID号,因此我可以将id附加到新数据。
afun=function(x,y){
#run geocoder - not shown cause it needs a key
#pretend in this function I get data from the geocoder
OP=data.frame(id=y,lat=34.4,long=-86, county="Washington")
return(OP)
}
如何使用ddply将此函数应用于数据帧并将结果作为数据帧返回?我尝试过类似的东西:
ddply(df,1,afun,id=id)
想法?
答案 0 :(得分:1)
我有点困惑,为什么你在这里使用ddply。如果我正确理解的话,我看到的一个解决方案是使用dplyr和mutate,如下所示:
library(dplyr)
df %>% mutate(g=x+1,h=y+3) %>%
select(g,h)
我觉得您必须尝试使用具有分组变量的更大数据集来执行某些操作才能要求ddply。使用mutate和dplyr,这也很容易实现。
HTH。
答案 1 :(得分:1)
答案很简单,使用mdply:
mdply(select(df,x=loc,y=id),afun)
这需要data.frame并吐出data.frame。