R语言中使用gmapsdistance匹配距离与对应省份的问题求助
解决方法
你的output列表顺序和df3的行是完全对应的——因为apply(df3,1,...)是逐行处理每一行数据的,所以只要把列表里的Distance值提取出来,加到原数据框里就能和省份对应上。
方法一:用purrr包提取(代码更简洁)
没装过purrr先装包:
install.packages("purrr") library(purrr)
然后一行代码提取Distance并添加到df3:
df3$distance <- map_dbl(output, ~ .x$Distance)
方法二:用基础R就行,不用额外装包
直接用sapply遍历列表提取值:
df3$distance <- sapply(output, function(x) x$Distance)
检查配对是否正确
把省份列和新的distance列拿出来看前几行,确认对应关系:
head(df3[, c("你的省份列名", "distance")]) # 记得把"你的省份列名"换成实际列名
要是还想把Time和Status也一起加上
可以直接把列表转成数据框,再和原df3合并:
# 用purrr的map_dfr把每个列表元素转成小数据框,再合并成大的 distance_info <- map_dfr(output, ~ data.frame( distance = .x$Distance, driving_time = .x$Time, request_status = .x$Status )) # 和原数据框合并 result_df <- cbind(df3, distance_info)
内容的提问来源于stack exchange,提问作者Eunhyuk Elf
相关产品推荐
相关产品推荐

