將数据框一行多数据合并成一列
上图合并成
GO %>% mutate(ID = rownames(GO)) -> GO
rownames(GO) <- NULL
#宽变长
GO %>%
pivot_longer(-ID, names_to = " ID", values_to = "GO") -> GO
GO <- GO %>% select(1,3)
# 去除GO含”“的行
GO <- GO %>% filter(GO!="")
#相同的列合并
GID <- GO$ID[!duplicated(GO$ID)]
GO1 <- matrix(NA,nrow=length(GID),ncol=2)
for (i in 1:length(GID)) {
a <- GO[GO$ID==GID[i],]
GO1[i,1] <- a[1,1]
GO1[i,2] <- paste(a[,2],collapse = ",")
}
GO1 <- as.data.frame(GO1)