我将尝试将一个数据集从长格式转换为宽格式。
以下是我的输入数据:
```html
我认为这更具有挑战性的原因(至少对我而言)是T1和V1列是“成对”出现的,同样的情况也适用于T2和V2。尝试收集T1和T2列然后展开(或使用dcast),但似乎并不起作用。
以下是我尝试过的方法。
当我使用dcast时,V1_a和V2_a分别取值1和2,不允许我保持“pair”结构。
非常感谢任何帮助!谢谢!
以下是我的输入数据:
```html
...
```df <- data.frame(year = c(2011:2013),
T1 = c("a", "b", "c"),
T2 = c("b", "c", "d"),
V1 = rep(1, 3),
V2 = rep(2, 3))
期望的输出结果在哪里
df2 <- data.frame(year = c(2011:2013),
a = c(1, 0, 0),
b = c(2, 1, 0),
c = c(0, 2, 1),
d = c(0, 0, 2))
我认为这更具有挑战性的原因(至少对我而言)是T1和V1列是“成对”出现的,同样的情况也适用于T2和V2。尝试收集T1和T2列然后展开(或使用dcast),但似乎并不起作用。
以下是我尝试过的方法。
require(data.table)
dt <- setDT(df)
tmp <- melt(dt, measure.vars = c("T1", "T2"))
dcast(tmp, year ~ value, value.var = c("V1", "V2"))
当我使用dcast时,V1_a和V2_a分别取值1和2,不允许我保持“pair”结构。
非常感谢任何帮助!谢谢!