我有一个数据框df
像:
year location
1 A
2 B
3 C
------------------
1 X
5 A
10 F
------------------
3 F
5 x
2 y
我想重新塑造它
year_1 location_1 year_2 location_2 year_3 location_3
1 A 2 B 3 F
3 C 1 X 5 X
5 A 10 F 2 Y
我可以做一个hack,并连接前两列,并做
d <- matrix(df, nrow = 70, byrow = FALSE)
但是后来我又要分开连接的东西了,有没有一种巧妙的方法呢?
分裂和重组怎么样:
wide.df <- Reduce(cbind, split(df, cumsum( rep(c(1,0,0), nrow(df)/3) ) )
这将优于强制矩阵和反强制到数据帧,因为它不会对因素或字符搞乱这些类没有任何困难。使用矩阵作为中间体将首先松开所有级别,如果你同时拥有两个字符和因子,你将会有一个非常令人困惑的混乱。
如果您需要确切的结果,您可能需要稍微调整列名称,如果您发布了可复制粘贴的[MCVE],我很乐意帮助您