对每一行应用 zip_distance
Apply zip_distance to every row
我有一个包含两列的数据框,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
91723
90048
90814
90048
91604
90048
90805
90048
90255
90048
也许这就是您所需要的:
dist <- mapply(function(x,y) zip_distance(x,y, lonlat = TRUE, units = "meters"), vf$zip, vf$CSZip)
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
我有一个包含两列的数据框,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 |
---|---|
91723 | 90048 |
90814 | 90048 |
91604 | 90048 |
90805 | 90048 |
90255 | 90048 |
也许这就是您所需要的:
dist <- mapply(function(x,y) zip_distance(x,y, lonlat = TRUE, units = "meters"), vf$zip, vf$CSZip)
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