数据转换:堆叠行

时间:2015-11-24 18:09:15

标签: r reshape

我正在尝试以特定方式转换数据框以执行某些分析。我有一个这样的数据框:

A <- data.frame(Date=c("A","A","B","B"), 
       Var1=c("A","B","A","B"), Var2=c(1,2,3,4), 
       Var3=c(5,6,7,8))

我想得到:

Result <- data.frame(Date=c("A","B"),
    Var4=c(1,2), Var5=c(5,6), 
    Var6=c(3,4), Var7=c(7,8))

我正在尝试使用reshape包中的一些函数,但我无法做到。一些建议?

1 个答案:

答案 0 :(得分:0)

我们可以尝试

cbind(Date= unique(A$Date), do.call(cbind, split(A[-(1:2)], A$Date)))

或者

library(data.table)
setDT(A)[, as.list(unlist(.SD)) , .(Date=Var1), .SDcols = Var2:Var3]