【发布时间】:2021-07-02 20:40:40
【问题描述】:
我想将多个地址组合在一起并为其创建一个计数。但是,它们的格式有所不同。我已经对地址进行了地理编码,并计划使用地理编码对它们进行分组,但是在对它们进行分组时,我想创建一个新变量,该变量至少保留一个版本的地址(或多个变量,组中的每个地址都采用宽格式,但是我会为每个组选择一个变量,并保留一个地址)。
这是一些示例数据。
address=c("big fake plaza, 12 this street,district, city",
"Green mansion, district, city",
"Block 7 of orange building district, city",
"98 main street block a blue plaza, city",
"blue red mansion, 46 pearl street, city",
"12 this street, big fake plaza, district, city",
"Green mansion, district, city",
"orange building Block 7 district, city",
"block a 98 main street blue plaza, city",
"blue red mansion, 46 pearl street, city"
"big fake plaza, district, city",
"Green mansion,city")
long =c("112.8838", "111.9154", "114.9318", "116.9318", "112.9320","111.9324",
"112.8838", "111.9154", "114.9318", "116.9318", "112.9320","111.9324",
"112.8838", "111.9154")
lat = c("21.22177", "12.22177", "26.27743", "23.17651", "23.24769", "23.24771",
"21.22177", "12.22177", "26.27743", "23.17651", "23.24769", "23.24771",
"21.22177", "12.22177")
df<-cbind(address, lat, long)
我要做的是分组和计数,但不知道如何根据组中的一个地址进行变异和创建命名变量。
df_agg<- df %>%
group_by(long,lat) %>%
summarise(count = n()) %>%
mutate(bldg = ifelse(address[address==1],address, NA )) ???????
我希望它看起来像这样
long lat count bldg
<dbl> <dbl> <int> <chr>
1 112. 21.2 3 "big fake plaza, 12 this street,district, city"
2 114. 12.2 3 "Green mansion, district, city"
3 116. 26.3 2 "98 main street block a blue plaza, city"
4 112. 23.5 2 "Block 7 of orange building district, city"
5 111. 23.5 2 "blue red mansion, 46 pearl street, city"
显然我们不能对地址名称进行分组,因为字符串之间存在差异。如果有更好的选择,很高兴听到任何其他建议。如果我们可以创建新变量 bldg1 blgd2 等。为每个组中每个不同的建筑物名称,这些名称很重要,但不是优先事项。
提前致谢。
【问题讨论】:
标签: r group-by dplyr summarize