我有一个包含1000多行的数据框,以下R代码创建了一个类似的数据框:
df = data.frame(yr = rep(1:3, 2),
name=c(rep("c1", 3), rep("c2", 3)),
ms=c(101,102,103,301, 302,303),
td=c(201,202,203,401,402,403))
正如我们所看到的,yr列表示时间轴,name列表示使用ms重复id和某些属性的td值。类似的结构在经济学中很常见。我想基于名称列取消堆栈数据框的部分。最终输出应如下所示:
yr c1_ms c1_td c2_ms c2_td
1 101 201 301 401
2 102 202 302 402
3 103 203 303 403
我尝试了dplyr :: spread,但无法获得任何解决方案,因为它似乎仅适用于一列。什么是R-ish方法来获得这种所需的数据布局而不诉诸于循环?
非常感谢你的帮助。