r - 使用 R 创建完全对立的绘图

标签 r dataframe loops matrix combinations

假设我有矩阵d,它是二维(列)采样过程的两种不同实现(行)的结果。我想开发一个函数,从这个原始矩阵创建完全对立的绘图。

c1 <- c(0.1, 0.6);c2 <- c(0.3, 0.8);d <- rbind(c1,c2)
#    [,1] [,2]
# c1  0.1  0.6
# c2  0.3  0.8

也就是说,比如第一个实现(c(0.1, 0.6))我想获取这个随机抽取的二维镜像,生成了4个(2^2)可能的组合如下:

d1_anthi = matrix( 
  c(   d[1,1] ,   d[1,2],
    1 - d[1,1],   d[1,2],
       d[1,1] , 1 - d[1,2],
    1 - d[1,1], 1 - d[1,2]), nrow=2,ncol=4)
t(d1_anthi)
#      [,1] [,2]
# [1,]  0.1  0.6
# [2,]  0.9  0.6
# [3,]  0.1  0.4
# [4,]  0.9  0.4

同理,对于第二种,实现结果如下:

d2_anthi = matrix( 
  c(   d[2,1] ,   d[2,2],
       1 - d[2,1],   d[2,2],
       d[2,1] , 1 - d[2,2],
       1 - d[2,1], 1 - d[2,2]), nrow=2, ncol=4)
t(d2_anthi)
#       [,1] [,2]
# [1,]  0.3  0.8
# [2,]  0.7  0.8
# [3,]  0.3  0.2
# [4,]  0.7  0.2

因此,我想要锁定的对象是这样的:

anthi_draws <- rbind(t(d1_anthi),t(d2_anthi))
     # [,1] [,2]
# [1,]  0.1  0.6  <- original first realization
# [2,]  0.9  0.6
# [3,]  0.1  0.4
# [4,]  0.9  0.4
# [5,]  0.3  0.8  <- original second realization
# [6,]  0.7  0.8
# [7,]  0.3  0.2
# [8,]  0.7  0.2

最后,我想创建一个函数,在给定随机数矩阵的情况下,该函数能够创建这个对偶抽奖的扩展矩阵。例如下图中我在三个维度进行了采样,那么每次原始抽奖的总抽奖次数为2^3 = 8。

enter image description here

特别是,我在创建完整的组合时遇到问题,该组合取决于原始采样的维度(矩阵的列)。我计划使用 expand.grid() 但我无法使用它创建完整的组合。欢迎任何有关创建此类功能的提示或帮助。预先感谢您。

最佳答案

你可以试试这个

do.call(
  rbind,
  apply(
    d,
    1,
    function(x) {
      expand.grid(data.frame(rbind(x, 1 - x)))
    }
  )
)

这给出了

      X1  X2
c1.1 0.1 0.6
c1.2 0.9 0.6
c1.3 0.1 0.4
c1.4 0.9 0.4
c2.1 0.3 0.8
c2.2 0.7 0.8
c2.3 0.3 0.2
c2.4 0.7 0.2

关于r - 使用 R 创建完全对立的绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70667360/

相关文章:

c - 循环中逻辑错误

r - 在行之间应用函数,按变量分组,计算其他列中变量之间的所有可能组合

r - 使用 GGplot R 组合来自 2 个不同数据帧列表和 1 个数据帧的数据以创建图表列表

r - 如何用R对数据进行插值?

java - Spark/Scala - 从 Json 创建 DataFrame 时出错 : java. lang.NoSuchMethodError : org. apache.spark.sql.DataFrameReader.json

python - 在 Pandas 数据框中将两个公共(public)行的值分组为一个

javascript - 如何使用 do while 循环将字符串多次插入数组?

C for循环不会停止

r - 如何使用 apply、cat 和 print,而不获取 NULL

r - 错误解压缩文件 : error 1 in extracting from zip file