r - 多个邮政编码的 zipRadius 函数
问题描述
谁能帮我把这个函数zipRadius
放在一个循环中?
此函数用于识别特定邮政编码半径内的所有邮政编码。当单个邮政编码通过该函数时,该函数运行良好。对于多个邮政编码,它似乎根本不起作用。请参阅下面我尝试过的内容:
尝试#1
install.packages("ZipRadius")
library(ZipRadius)
zipRadius(c("99501", "90210"), 3)
尝试#2
install.packages("ZipRadius")
library(ZipRadius)
x <- c("30316", "66061")
for (i in seq_along(x)) {
c <-zipRadius(x[i], 3.5)
}
解决方案
我不相信zipRadius
是矢量化的,并且可能会忽略矢量中提供的多个邮政编码(对于尝试#1)。
您的循环有效,但是您c
用第二个zipRadius
电话覆盖了您的循环。
如果您想要一个包含所有结果的数据框,您可以将第二个数据框附加到第一个数据框,并用于rbind
组合它们。
library(ZipRadius)
x <- c("30316", "66061")
mylist = list()
for (i in seq_along(x)) {
mylist[[i]] <- zipRadius(x[i], 3.5)
}
do.call(rbind, mylist)
输出
zip city state latitude longitude Distance
1 30303 Atlanta GA 33.75286 -84.39013 3.26
2 30307 Atlanta GA 33.76821 -84.33786 2.68
3 30312 Atlanta GA 33.74574 -84.37640 2.33
4 30315 Atlanta GA 33.70960 -84.38365 2.82
5 30316 Atlanta GA 33.72951 -84.34087 0.00
6 30317 Atlanta GA 33.75001 -84.31854 1.91
7 30335 Atlanta GA 33.75241 -84.38968 3.22
8 31120 Atlanta GA 33.74000 -84.38000 2.36
9 66051 Olathe KS 38.89990 -94.83199 1.45
10 66061 Olathe KS 38.88978 -94.85558 0.00
11 66063 Olathe KS 38.89990 -94.83199 1.45
12 66222 Shawnee Mission KS 38.89990 -94.83199 1.45
13 66225 Shawnee Mission KS 38.89990 -94.83199 1.45
14 66250 Shawnee Mission KS 38.89990 -94.83199 1.45
15 66251 Shawnee Mission KS 38.89990 -94.83199 1.45
16 66276 Shawnee Mission KS 38.89990 -94.83199 1.45
17 66279 Shawnee Mission KS 38.89990 -94.83199 1.45
18 66282 Shawnee Mission KS 38.89990 -94.83199 1.45
19 66283 Shawnee Mission KS 38.89990 -94.83199 1.45
20 66285 Shawnee Mission KS 38.89990 -94.83199 1.45
21 66286 Shawnee Mission KS 38.89990 -94.83199 1.45
或者您可以跳过循环,并使用lapply
,您将在列表中获得结果:
lapply(x, zipRadius, 3.5)
输出
[[1]]
zip city state latitude longitude Distance
1 30303 Atlanta GA 33.75286 -84.39013 3.26
2 30307 Atlanta GA 33.76821 -84.33786 2.68
3 30312 Atlanta GA 33.74574 -84.37640 2.33
4 30315 Atlanta GA 33.70960 -84.38365 2.82
5 30316 Atlanta GA 33.72951 -84.34087 0.00
6 30317 Atlanta GA 33.75001 -84.31854 1.91
7 30335 Atlanta GA 33.75241 -84.38968 3.22
8 31120 Atlanta GA 33.74000 -84.38000 2.36
[[2]]
zip city state latitude longitude Distance
1 66051 Olathe KS 38.89990 -94.83199 1.45
2 66061 Olathe KS 38.88978 -94.85558 0.00
3 66063 Olathe KS 38.89990 -94.83199 1.45
4 66222 Shawnee Mission KS 38.89990 -94.83199 1.45
5 66225 Shawnee Mission KS 38.89990 -94.83199 1.45
6 66250 Shawnee Mission KS 38.89990 -94.83199 1.45
7 66251 Shawnee Mission KS 38.89990 -94.83199 1.45
8 66276 Shawnee Mission KS 38.89990 -94.83199 1.45
9 66279 Shawnee Mission KS 38.89990 -94.83199 1.45
10 66282 Shawnee Mission KS 38.89990 -94.83199 1.45
11 66283 Shawnee Mission KS 38.89990 -94.83199 1.45
12 66285 Shawnee Mission KS 38.89990 -94.83199 1.45
13 66286 Shawnee Mission KS 38.89990 -94.83199 1.45
推荐阅读
- css - how to set styles for a text in the code example
- javascript - 无法查看通过 allure jasmine 报告生成的图像
- python - 图未使用 matplotlib.use('Agg') 显示
- java - 建立与mysql数据库的连接(关于优化的问题)
- ios - 更改快照动画差异值时如何处理不一致的行为?
- python - python程序将多个excel文件合并到一个带有单独工作表的工作簿中
- javascript - 是否可以链接到具有不同 CSS 条件的同一页面,具体取决于我单击的链接?
- c++ - 获取操作系统和版本号
- github - 使用 Google Colab 克隆私有存储库的步骤
- python - Python 除了 ValueError: While True