gpt4 book ai didi

r - 如何根据R中的源向量创建相互互补的向量对

转载 作者:行者123 更新时间:2023-12-04 10:44:16 26 4
gpt4 key购买 nike

我有以下源向量:

source_vec <- c(1:3)

我想要做的是在选择一个值时通过拆分为两个来枚举向量,而另一个向量是互补的。最后,它看起来像这样(手动):

  from  to
1,2 3
1,3 2
2,3 1

注意to列只有一个值,而from可以是多个。

理想情况下,最终输出是数据帧/tibble,但 from 列是 list column .

如何使用 R 实现这一目标?

最佳答案

假设 DF 与最后的注释一样。那么 to 就是 source_vec 的总和减去 from 中每个条目的总和。

transform(DF, to = sum(source_vec) - sapply(from, sum))

给予:

  from to
1 1, 2 3
2 1, 3 2
3 2, 3 1

这也可以表示为:

library(dplyr)

DF %>%
rowwise %>%
mutate(to = sum(source_vec) - sum(from)) %>%
ungroup

注意

DF <- data.frame(from = I(list(1:2, c(1, 3), 2:3)))

关于r - 如何根据R中的源向量创建相互互补的向量对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59278694/

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