数据转换:堆叠行
Data transformation: stacking rows
我正在尝试以特定方式转换数据框以执行一些分析。我有一个这样的数据框:
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 包中的一些函数,但我做不到。有什么建议吗?
我们可以试试
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]
我正在尝试以特定方式转换数据框以执行一些分析。我有一个这样的数据框:
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 包中的一些函数,但我做不到。有什么建议吗?
我们可以试试
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]