如何使用Reforme2库按组转置数据帧? 问题

如何使用Reforme2库按组转置数据帧? 问题,r,reshape2,R,Reshape2,我有3辆车(分组变量),其速度随时间记录在以下数据集中。我想一组一组地转置这个数据帧 资料 我试过的 经过大量搜索,我发现restrape2库非常有用。我发现这似乎是相关的。因此,我尝试使用melt()和dcast()函数,如下所示: library(reshape2) dcast(melt(foo,id.vars = 1), file.ID2 ~ variable, NULL) Aggregation function missing: defaulting to length

我有3辆车(分组变量),其速度随时间记录在以下数据集中。我想一组一组地转置这个数据帧

资料 我试过的 经过大量搜索,我发现
restrape2
库非常有用。我发现这似乎是相关的。因此,我尝试使用
melt()
dcast()
函数,如下所示:

library(reshape2)
dcast(melt(foo,id.vars = 1),
      file.ID2 ~ variable, NULL)
Aggregation function missing: defaulting to length
  file.ID2 speed.kph.ED
1  Cars_03            8
2  Cars_04            8
3  Cars_05            8   

但这只是对值(计数/总和)进行聚合。请帮助我获得所需的输出。谢谢。

对于重塑数据,我喜欢使用
tidyr
库的
spread
功能

首先,添加一个
id
列。有十亿种不同的方法可以做到这一点(我喜欢使用
dplyr
包):

下面是如何使用
tidyr
spread
输出数据:

library(tidyr)
answer = spread(data = foo, key = id, value = speed.kph.ED)

在没有任何包的情况下,这是有效的:
带有(foo,as.data.frame(t(sappy(split(speed.kph.ED,file.ID2),t))
省略
as.data.frame
是矩阵结果是否正常。相关:
library(reshape2)
dcast(melt(foo,id.vars = 1),
      file.ID2 ~ variable, NULL)
Aggregation function missing: defaulting to length
  file.ID2 speed.kph.ED
1  Cars_03            8
2  Cars_04            8
3  Cars_05            8   
library(dplyr)
foo = foo %>% group_by(file.ID2) %>% mutate(id = paste0("V",row_number()))
library(tidyr)
answer = spread(data = foo, key = id, value = speed.kph.ED)