ekeen 发表于 2019-7-21 16:32 
library(tidyr)
a %>% spread(num,des)
感谢您的解答,我把数据重新加了一列cat,这样后面更好理解和处理,我使用reshape包中的dcast(a,num+id~cat),能初步达到效果,同时使用您的a %>% spread(cat,des),两者均可达到初步的效果;但是出来的结果中,同一个id号的仍然分为了好几行,未能合并到一行,这个又需要怎么处理呢?我在其他地方看到的使用dcast的命令后(
https://www.cnblogs.com/ljhdo/p/4954351.html),同一id的就全部合并到一行了,不知道为何我的不行,谢谢~
#数据框更新#
c1<-c(1:7)
c2<-c("30040","30040","30041","30041","30041","30042","30043")
c3<-c("des","des1","des2","des","des1","des2","des")
c4<-c("糖尿病","感染","高血压","糖尿病","感染","高血压","糖尿病")
a=data.frame(c1,c2,c3,c4)
names(a)<-c("num","id","cat","des")
#dcast(a,num+id~cat)后的结果#