如何使用Reforme2库按组转置数据帧? 问题
我有3辆车(分组变量),其速度随时间记录在以下数据集中。我想一组一组地转置这个数据帧 资料 我试过的 经过大量搜索,我发现如何使用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
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)