将函数应用于data.frame中的每一行,并将结果附加到R中的data.frame

时间:2011-11-14 17:04:01

标签: r function dataframe apply

似乎我应该知道如何做到这一点,或者至少在这里或其他地方找到答案。不幸的是,两者都没有。

我有一个客户数据框,其中一列是他们的ID,另一列是他们的完整地址。我想为每一行添加3列,其中包含来自地理编码查找的lat,long和county代码。

该数据框看起来像

customer_id       fulladdress
     1            123 Main St., Anywhere, FL
     2            321 Oak St., Thisplace, CA

我创建了一个地理编码函数,该函数获取完整地址并返回带有lat,long和county列的数据框。

如何将地理编码功能应用于数据框的每一行,并将结果作为3列附加到现有数据框中,使其如下所示:

customer_id       fulladdress                      lat        long     county
     1            123 Main St., Anywhere, FL     33.2345    -92.3333   43754
     2            321 Oak St., Thisplace, CA     25.3333    -120.333   32960

我尝试过使用apply和ddply,但我似乎无法弄清楚其中一个人在做什么。我用ddply尝试了这个,但它只是给我回原始数据框。

ddply(customers[1:3,], .(fulladdress), function(x) { geocode(x$fulladdress)})

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

感谢您让我走上正轨。以下是最终奏效的内容:

cbind(customers, t(sapply(customers$fulladdress,geocode, USE.NAMES=F)))