gpt4 book ai didi

R创建列组合来自两列的信息

转载 作者:行者123 更新时间:2023-12-05 09:33:47 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

structure(list(t1errser_1 = c(5, 2, 3, 4, 4, NA, 3, NA, 4, 2), 
t1errser_2 = c(NA, 4, 3, 5, NA, NA, 4, NA, 4, 2), t1errser_3 = c(2,
3, 3, 4, NA, 4, NA, NA, NA, 4), t1errser_4 = c(NA, NA, NA,
NA, NA, 4, 5, NA, NA, NA), t1errser_5 = c(NA, NA, NA, NA,
3, NA, NA, NA, NA, 2), t1errser_6 = c(5, 4, NA, NA, 5, NA,
3, NA, NA, 3), t1errser_7 = c(NA, NA, NA, NA, NA, NA, 4,
NA, NA, 2), t1errser_8 = c(NA, 4, NA, 5, NA, NA, 5, 4, NA,
3), t1errser_9 = c(1, NA, NA, NA, NA, 5, NA, NA, NA, NA),
t1errsel = c(6, 2, 2, 2, 1, 9, 6, 8, 1, 5)), row.names = c(4L,
6L, 7L, 8L, 9L, 10L, 11L, 13L, 15L, 16L), class = "data.frame")

所以我有九列(t1errser_1t1errser_9)和一列 t1errsel。我想要的是一个名为 t1errsel_ser 的新列。对于在 errsel 中指定的 errser_x,此列应该包含从 errser_1errser_9 的信息。因此,例如第一列 t1errsel_ser 应该是 5(该列的 errsel6 errser_6 = 5),对于第二列 4(errsel 为 2 并且 errser_2 = 4 ), 然后 3 等等...

希望这是清楚的。请询问是否需要其他信息。
非常感谢!

最佳答案

您可以使用 mapply 使用 [ 并提供 x[1:9]asplit 并使用 x$t1errsel 用于子集化。

x$t1errsel_ser <- mapply("[", asplit(x[1:9], 1), x$t1errsel)
x$t1errsel_ser
# [1] 5 4 3 5 4 5 3 4 4 2

或使用矩阵子设置:

x[cbind(1:nrow(x), x$t1errsel)]
# [1] 5 4 3 5 4 5 3 4 4 2

关于R创建列组合来自两列的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67055896/

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