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

标签 r

我有以下源向量:

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/

相关文章:

r - 为数据帧中的每个组创建长度为 n 的重复数

r - 如何使用 R 在传单上绘制多边形?

r - 如何将整数转换为因子?

python - 在 `python` 上运行 R 代码,语法错误 : keyword can't be an expression error Message

r - 增加(或减少)R 进程可用的内存

r - 如何安装包以便我可以使用调试器单步调试它的 R 代码?

r - 在R中打印不带索引的字符串

r - Shiny +DT : how to make datatable reactive?

r - 如何从R中的字符串中提取前2个单词?

r - R 中的多类 ROC 曲线