我希望获取当前广泛的数据并将其融合为长格式。诀窍是我想创建一个序列指示器。

这是我的数据:

df.wide <- data.frame(id = 1:5,
                      code1 = sample(month.abb, 5),
                      code2 = sample(month.abb, 5))

我在找什么:
   id rank value
1   1    1       Dec
2   1    2       Jan
3   2    1       May
4   2    2       Jun
5   3    1       Aug
6   3    2       Aug
7   4    1       Sep
8   4    2       Mar
9   5    1       Dec
10  5    2       Nov

我怀疑我可以使用这个:
melt(df.wide, id=c("id"))

并在之后迭代数据以清理结果,但我知道 reshape 是一个很棒的包,在我重新发明轮子之前想问问。

最佳答案

这是在 reshape R 中使用 base 函数的单行代码(不要与 reshape 包混淆)

reshape(df.wide, varying = 2:3, timevar = 'rank', sep = "", direction = 'long')

关于在 R 中将 Wide 整形为 Long 并包含序列号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8995675/

10-12 18:09