在数据框中存储数字对象的名称和值

storing the name AND value of a numeric object in a data frame

我从矩阵的第一行随机抽取值 A:

                   #1    2    3     4     5    6    7    8    9
A <- matrix(data=c( 0,   0,   0.33, 0.37, 0,   0,   0,   0.3, 0,    #1
                    0,   0,   0,    0,    0.1, 0,   0,   0.9, 0,    #2
                    0.2, 0,   0.1,  0,    0.4, 0,   0,   0.3, 0,    #3
                    0.5, 0,   0,0,  0,    0,   0,   0,   0.5,       #4
                    0,   0.4, 0,0,  0,    0.5, 0,   0,   0.1,       #5
                    0,   0,   0,0,  1,    0,   0,   0,   0,         #6
                    0,   0.2, 0,    0.8,  0,   0,   0,   0,0,       #7
                    1,   0,   0,    0,    0,   0,   0,   0,0,       #8
                    0.1, 0.1, 0.1,  0.1,  0.2, 0.1, 0.1, 0.1, 0.1 ),#9
            nrow=9, ncol=9)

colnames(A) <- c(1:9)
rownames(A) <- c(1:9)


x <- sample(x=A[,1], size=2, prob=A[,1])

结果是一个 numeric 对象,例如,看起来像这样:

> x
   3    8 
0.33 0.30

3 和 8 代表我需要存储和用于下游计算的重要信息。我不知道如何提取它们 - 当我 View(x):

时,这些行号似乎存储为元数据

如何重塑 sample() 的结果,以便输出的数字对象是包含行号的向量(即,在此示例中,我希望 x 等于 c(3, 8))?

怎么样:

A <- matrix(data=c( 0,   0,   0.33, 0.37, 0,   0,   0,   0.3, 0,    #1
                    0,   0,   0,    0,    0.1, 0,   0,   0.9, 0,    #2
                    0.2, 0,   0.1,  0,    0.4, 0,   0,   0.3, 0,    #3
                    0.5, 0,   0,0,  0,    0,   0,   0,   0.5,       #4
                    0,   0.4, 0,0,  0,    0.5, 0,   0,   0.1,       #5
                    0,   0,   0,0,  1,    0,   0,   0,   0,         #6
                    0,   0.2, 0,    0.8,  0,   0,   0,   0,0,       #7
                    1,   0,   0,    0,    0,   0,   0,   0,0,       #8
                    0.1, 0.1, 0.1,  0.1,  0.2, 0.1, 0.1, 0.1, 0.1 ),#9
            nrow=9, ncol=9)

colnames(A) <- c(1:9)
rownames(A) <- c(1:9)

x <- names(sample(x=A[,1], size=2, prob=A[,1]))
x
#> [1] "3" "8"

reprex package (v2.0.1)

创建于 2022-02-01