【发布时间】:2021-07-19 14:17:48
【问题描述】:
我已经为我的数据计算了多个 RMSE 值,并希望使用 R 中的合并函数将其放入一个表中。 这是我目前拥有的代码:
merge(merge(merge(merge(merge(merge(merge(merge(merge(merge(merge(merge(RMSE_G_te, RMSE_GS_p, by = "name"),
RMSE_GS_sistar, by = "name"),
RMSE_GS_nistar, by = "name"),
RMSE_GS_s, by = "name"),
RMSE_GS_t, by = "name"),
RMSE_GS_d, by = "name"),
RMSE_GI_p, by = "name"),
RMSE_GI_sistar, by = "name"),
RMSE_GI_nistar, by = "name"),
RMSE_GI_s, by = "name"),
RMSE_GI_t, by = "name"),
RMSE_GI_d, by = "name")
RMSE 值是使用 Metrics 包中的 rmse() 函数计算得出的。
有没有办法用 for 循环来清理它? 感谢您的帮助,谢谢!
编辑:我尝试将值放入列表中,但出现以下错误:
df <- as.list(RMSE_G_te, RMSE_GS_p, RMSE_GS_sistar, RMSE_GS_nistar, RMSE_GS_s, RMSE_GS_t, RMSE_GS_d, RMSE_GI_p, RMSE_GI_sistar, RMSE_GI_nistar, RMSE_GI_s, RMSE_GI_t, RMSE_GI_d)
reduce(df, merge, by = "name")
fix.by(by.x, x) 中的错误:“by”必须指定唯一有效的列
【问题讨论】:
-
不要使用 for 循环。使用减少()。如果没有可重现的示例,我无法进行测试,但是如果您将所有数据帧存储在列表中... Reduce(dfList, merge, by = "name")
-
@BillO'Brien 嗨,我得到的错误是“未使用的参数(by = "scientific_name")”
-
您可以逐字发布产生错误的代码吗?您是否已经将数据框放入列表中?
-
@BillO'Brien 您好,您现在应该可以看到原始帖子中的编辑。谢谢!
-
@Onyambu Reduce 不是语法糖;这是一个高阶函数。合并一组数据帧是 reduce 的经典用例(例如,累积和)。我宁愿使用“减少”单行代码,也不愿使用临时变量、逐一调试错误等。