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

Reshape data frame where column names are a single variable in initial data frame

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

    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

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

*标题需要一些改进,如果有人有更好的主意,我很乐意尝试更改它。

基数 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")