gpt4 book ai didi

在 R 中将数据帧 reshape 为长格式

转载 作者:行者123 更新时间:2023-12-04 23:05:41 25 4
gpt4 key购买 nike

我正在为 R 中的 reshape 而苦苦挣扎。我有 2 种类型的错误(err 和 rel_err),它们已针对 3 个不同的模型进行计算。这给了我总共 6 个错误变量(即 err_1、err_2、err_3、rel_err_1、rel_err_2 和 rel_err_3)。对于这些类型的错误中的每一种,我都有 3 种不同类型的预测有效性测试(即随机拒绝、回溯、预测)。我想让我的数据集很长,所以我保持 4 种类型的测试很长,同时也使两个错误测量很长。所以最后我将有一个名为 err 的变量和一个名为 rel_err 的变量以及一个 id 变量,用于错误对应的模型(1、2 或 3)

这是我现在的数据:

iter       err_1  rel_err_1      err_2  rel_err_2      err_3  rel_err_3 test_type
1 -0.09385732 -0.2235443 -0.1216982 -0.2898543 -0.1058366 -0.2520759 random
1 0.16141630 0.8575728 0.1418732 0.7537442 0.1584816 0.8419816 back
1 0.16376930 0.8700738 0.1431505 0.7605302 0.1596502 0.8481901 front
1 0.14345986 0.6765194 0.1213689 0.5723444 0.1374676 0.6482615 random
1 0.15890059 0.7435382 0.1589823 0.7439204 0.1608709 0.7527580 back
1 0.14412360 0.6743928 0.1442039 0.6747684 0.1463520 0.6848202 front

这是我希望它的样子:
iter     model    err           rel_err    test_type
1 1 -0.09385732 (#'s) random
1 2 -0.1216982 (#'s) random
1 3 -0.1216982 (#'s) random

然后……

我试过玩弄语法,但不能完全弄清楚 time.variing 参数

非常感谢您提供的任何帮助。

最佳答案

你可以用“困难”的方式做到这一点。为了透明,您可以使用名称。

with( dat, data.frame(iter = rep(iter, 3), 
model = rep(1:3, each = nrow(dat)),
err = c(err_1, err_2, err_3),
rel_err = c(rel_err_1, rel_err_2, rel_err_3),
test_type = rep(test_type, 3)) )

或者,为了简洁起见,索引。
data.frame(iter = dat[,1], model = rep(1:3, each = nrow(dat)), err = dat[,c(2, 4, 6)], 
rel_err = dat[,c(3, 5, 7)], test_type = dat[,8]) )

如果您有很多列,那么困难的方法可能涉及 grep 列名。

这种“艰难”的方式与 reshape 一样简洁并且不需要考虑如何使用命令。有时我只是跳过思考 reshape .

关于在 R 中将数据帧 reshape 为长格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061737/

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