【发布时间】:2018-10-04 16:58:32
【问题描述】:
我有一个嵌套在一个列表中的多个 tbl。所有 tbl df 都有一个 ZIPCode 列。我有一张表格,我从邮政编码包中接收数据,这样我就可以获得每个邮政编码的纬度和经度。
我想将纬度和经度加入到每个 tbl 上,以便稍后用于传单。我尝试将其设置为:
zip = lapply(myfiles, function(x){
z = left_join(myfiles, zip_filtered, by=c("ZIPCode"="zip"))
return(z)
})
这会引发以下错误:
UseMethod("left_join") 中的错误: 没有适用于“list”类对象的“left_join”方法
然后我尝试了以下方法来通过:
zip = lapply(myfiles, function(x){
z = x[,left_join(x, zip_filtered, by=c("ZIPCode"="zip"))]
return(z)
})
这给了我以下信息:错误:不支持的索引类型:tbl_df。
最好的方案是将纬度和经度两列附加到列表中的所有六个 tbl_df,但不确定如何执行此操作,这就是我开始沿着这条路线走下去的原因。
谢谢!
【问题讨论】:
-
您的第一个
lapply使用匿名function(x),但它从不使用x。在匿名函数中,将myfiles替换为x。 -
鉴于您关于仅附加列的评论,如果您不需要
join(因为您知道行的顺序已经正确)然后zip = lapply(myfiles, cbind, zip_fiiltered) -
你也可以
rbindlist()不同的tbl't在一起(你可以使用参数idcol将不同的表保持在不同的组中),然后left_joiny[x, on...]纬度/经度坐标