我写了一个代码,希望能帮到楼主。但是我不知道楼主的shiny app整体代码是怎样的,所以需要楼主看着怎么应用进去。在下列代码中只要把dat代替为shiny输入的一个数据data.frame就行,比如dat=input$dat, 或者dat=dat()之类的。
> ##define data frame
> dat <- data.frame(ID=c(1,1,4,5),SITE=c('beijing','shanghai','beijing','beijing'),Volume=c(1,1,4,5))
> dat
ID SITE Volume
1 1 beijing 1
2 1 shanghai 1
3 4 beijing 4
4 5 beijing 5
>
> ##create new site names
> sub.dat <- dat[,c('ID','SITE')]
> site <- by(data=sub.dat,INDICES = sub.dat$ID,FUN = function(x){
+ paste0(x$SITE,collapse = ',')
+ })
>
> site.idx <- which(colnames(dat)=='SITE')
>
> ##remove duplicated and put in the new site names
> dat.new <- dat[!duplicated(dat[,-site.idx]),]
> dat.new$SITE <- as.vector(site)
> dat.new
ID SITE Volume
1 1 beijing,shanghai 1
3 4 beijing 4
4 5 beijing 5


雷达卡




京公网安备 11010802022788号







