我希望获取当前广泛的数据并将其融合为长格式。诀窍是我想创建一个序列指示器。
这是我的数据:
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/