gpt4 book ai didi

r - 列/变量的虚拟化

转载 作者:行者123 更新时间:2023-12-02 17:35:41 26 4
gpt4 key购买 nike

我正在用 R 设计一个神经网络。为此,我必须准备数据并导入一个表。

例如:

      time    hour Money day
1: 20000616 1 9.35 5
2: 20000616 2 6.22 5
3: 20000616 3 10.65 5
4: 20000616 4 11.42 5
5: 20000616 5 10.12 5
6: 20000616 6 7.32 5

现在我需要一个虚拟化。我的决赛 table 应如下所示:

      time    Money day  1   2   3   4   5   6   
1: 20000616 9.35 5 1 0 0 0 0 0
2: 20000616 6.22 5 0 1 0 0 0 0
3: 20000616 10.65 5 0 0 1 0 0 0
4: 20000616 11.42 5 0 0 0 1 0 0
5: 20000616 10.12 5 0 0 0 0 1 0
6: 20000616 7.32 5 0 0 0 0 0 1

是否有一种简单的方法/智能的方法可以将我的表格转换为新的布局?或者在 R 中以编程方式?我需要在 R 中执行此操作,而不是在导入之前执行此操作。

提前致谢

最佳答案

使用data.table(您显然正在使用)的可能解决方案:

dt[dcast(dt, hour ~ hour, value.var = 'hour', fun = length), on = .(hour)]

给出:

       time hour Money day 1 2 3 4 5 6
1: 20000616 1 9.35 5 1 0 0 0 0 0
2: 20000616 2 6.22 5 0 1 0 0 0 0
3: 20000616 3 10.65 5 0 0 1 0 0 0
4: 20000616 4 11.42 5 0 0 0 1 0 0
5: 20000616 5 10.12 5 0 0 0 0 1 0
6: 20000616 6 7.32 5 0 0 0 0 0 1

我认为在您的真实数据集中,您的时间会有更多变化,然后您可以将代码调整为:

dt[dcast(dt, time + day + hour ~ hour, value.var = 'hour', fun = length)
, on = .(time, day, hour)]
<小时/>

使用的数据:

dt <- fread(' time    hour Money day
20000616 1 9.35 5
20000616 2 6.22 5
20000616 3 10.65 5
20000616 4 11.42 5
20000616 5 10.12 5
20000616 6 7.32 5')

关于r - 列/变量的虚拟化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48630405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com