|
library(dplyr)
library(tidyr)
# 样例 kf代表某地,k1代表邻县,k2代表邻市
d1 <- data.frame(kf=c('A','A','A','B','B'),k1=paste0('lx',1:5),k2=paste0('ls',2:6))
# 添加辅助列
d2 <- d1 %>% group_by(kf) %>% mutate(rk=row_number()) %>% mutate(rk_key=paste0('key',rk))
# 查看最多临县数
kn <- unique(d2$rk) %>% length()
# 打横 得到邻县
lx.data <- d2 %>% spread(key = rk_key,value = k1) %>% group_by(kf) %>%
summarise_at(vars(key1:paste0('key',kn)), max,na.rm=TRUE)
# 打横 得到市区
ls.data <- d2 %>% spread(key = rk_key,value = k2) %>% group_by(kf) %>%
summarise_at(vars(key1:paste0('key',kn)), max,na.rm=TRUE)
# 合并最后结果
left_join(lx.data,lx.data,by='kf')
|