我有一个数据框,有两列,zip
和CSZip
。我试图应用一个函数到每一行使用:
dist <- apply(vf, 1, zip_distance(zip, CSZip, lonlat = TRUE, units = "meters"))
但是我得到这个错误:
Error in as.character(zipcode_a) :
cannot coerce type 'closure' to vector of type 'character'
zip_distance来自ZipCodeR包。
这是5行vf的样子:
<表类>zip CSZip tbody><<tr>91723 90048 90814 90048 91604 90048 90805 90048 90255 90048 表类>
ZipcodeR是有一些怪异的行为。有时使用for循环更简单:
library(zipcodeR)
vf <- read.table(header=TRUE, text="zip CSZip
91723 90048
90814 90048
91604 90048
90805 90048
90255 90048")
for(i in 1:nrow(vf)) {
vf$dist[i] <- zip_distance(vf$zip[i], vf$CSZip[i], lonlat = TRUE, units = "meters")$distance
}
vf
也许这就是你需要的:
dist <- mapply(function(x,y) zip_distance(x,y, lonlat = TRUE, units = "meters"), vf$zip, vf$CSZip)