FCC Census Block API超时

问题描述

我需要遍历两千对经纬度。我写了一个for循环,它只填充前20行,然后停止。我在documentation中找不到任何限制,但是我认为我可以写一个Sys.sleep解决这个问题。没有骰子,我一定想念一些东西。 dput,因为我找不到包含经纬度对的现成数据源。

> dput(fw %>% select(lat,lon,Offense) %>% head(22))
structure(list(lat = c(32.7305737101884,32.7071796535597,32.801343650586,32.6497235905068,32.9196968288275,32.8213635863012,32.7606031381985,32.7090479791265,32.7353753247409,32.7785087695848,32.7268425544181,32.7179541491143,32.7500856566189,32.7352690680259,32.6608938090998,32.741037616671,32.7885499640296,32.6267787210864,32.6226562944531,32.8036718521628,32.7325453290282),lon = c(-97.3299315325775,-97.440786931728,-97.3856410446521,-97.3216047378274,-97.3406980675876,-97.4589971745759,-97.22609732855,-97.3480226360202,-97.4690739426462,-97.3015112961882,-97.3316422324573,-97.439848768221,-97.3569699397729,-97.471429159867,-97.4017441039168,-97.265145927386,-97.3860506325934,-97.3798330465665,-97.3782646205598,-97.2906413984061,-97.3701635007801),Offense = c("90Z","23G","220","290","90J","90F","23H","240","23C","90E","13B","90Z","23F","35A","120")),row.names = c(NA,-22L),class = c("tbl_df","tbl","data.frame"))

这是我到目前为止提出的代码

fw$tract <- NA
for(i in seq_along(fw)){
  fw$tract[i] <- tigris::call_geolocator_latlon(lat = fw$lat[i],lon = fw$lon[i])
  if(i %% 20 == 0) {
    Sys.sleep(1000)
  }
}

期望的结果:带有数据段的数据框不仅仅包含前20行。

期待任何提示! 谢谢!

解决方法

好的,这主要是用户错误和深夜混乱:

  1. 我实际上不是在使用FCC Area API(这是单独尝试)。我正在使用baseurl中的call_geolocator_latlon()函数,已将tigris标签添加到帖子中。

  2. 在上面的尝试中,我使用的是没有列引用的tigris,所以seq_along沿着列排序...共有20个!因此停在20行。

这是一些修改后的代码:

i in seq_along(df)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...