【发布时间】:2014-12-20 21:15:01
【问题描述】:
我有几千行这种形式的数据:
a= c("id", "start", "mid1", "mid2", "finish")
b= c("id1", "date1", "date2", "date3", "date4")
c= c("id2", "date5", "date6", NA, "date7")
d= c("id3", "date8", "date9", "date10", "date11")
df=as.data.frame(rbind(b,c,d))
colnames(df)=a
rownames(df)=c(1:nrow(df))
df
# id start mid1 mid2 finish
# 1 id1 date1 date2 date3 date4
# 2 id2 date5 date6 <NA> date7
# 3 id3 date8 date9 date10 date11
# ...
我需要以这种形式:
id; event ;date
id1; start ;date1
id1; mid1 ;date2
id1; mid2 ;date3
id1; finish ;date4
id2; start ;date5
id2; mid1 ;date6
id2; finish ;date7
id3; start ;date8
id3; mid1 ;date9
id3; mid2 ;date10
id3; finish ;date11
...
我发现这个问题几乎相同,但反过来:How to transform Columns to rows in R?
我怎样才能完成转换?
【问题讨论】:
-
看看
reshape2::melt -
看看
tidyr::gather