重塑数据框,其中列名称是初始数据框中的单个变量

时间:2016-09-05 22:37:41

标签: r dataframe reshape

关于如何转换或重塑我的数据框的任何想法:

    value               L2
1   2008-09-01T07:00:00 timestamp
2   621.31              ht
3   0                   X3
4   2008-09-02T07:00:00 timestamp
5   621.24              ht
6   0                   X3
7   2008-09-03T07:00:00 timestamp
8   621.25  ht
9   0                   X3

对此:

    timestamp           ht      X3
1   2008-09-01T07:00:00 621.31  0
2   2008-09-02T07:00:00 621.24  0
3   2008-09-03T07:00:00 621.25  0

我正在尝试将第二列更改为列名并保持timestampht记录配对。

*标题需要一些工作,如果有人有更好的想法,我会乐意尝试改变它。

1 个答案:

答案 0 :(得分:2)

基础R中的简单unstack可以解决这个问题:

unstack(df)

      ht           timestamp X3
1 621.31 2008-09-01T07:00:00  0
2 621.24 2008-09-02T07:00:00  0
3 621.25 2008-09-03T07:00:00  0

这个函数非常适合转换两列data.frame,其中一列是值,另一列将变量命名为适当形状的宽data.frame。

数据

df <- read.table(header=TRUE, text="    value               L2
1   2008-09-01T07:00:00 timestamp
2   621.31              ht
3   0                   X3
4   2008-09-02T07:00:00 timestamp
5   621.24              ht
6   0                   X3
7   2008-09-03T07:00:00 timestamp
8   621.25  ht
9   0                   X3")