r - 如何将table()转换为R中的矩阵

标签 r matrix

我有一个6x6的矩阵,如下所示:

M = matrix(0,nrow = 6, ncol = 6);
for(i in 1:6)
  for(j in 1:6)
    M[i,j]<- i+j

M是一个6x6矩阵,具有以下元素:
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    2    3    4    5    6    7
[2,]    3    4    5    6    7    8
[3,]    4    5    6    7    8    9
[4,]    5    6    7    8    9   10
[5,]    6    7    8    9   10   11
[6,]    7    8    9   10   11   12

我想使用r函数table()从矩阵M上方导出具有其频率的元素矩阵。

table(M)的输出是:
> table(M)
M
 2  3  4  5  6  7  8  9 10 11 12 
 1  2  3  4  5  6  5  4  3  2  1 

如何简单地从table(M)输出中制作11x2矩阵?

我尝试了as.matrix(table(M)),但是尽管我不确定发生了什么,但是它使元素成为行名!
> as.matrix(table(M))
   [,1]
2     1
3     2
4     3
5     4
6     5
7     6
8     5
9     4
10    3
11    2
12    1

如建议:
DF <- data.frame(table(M))
ma <- data.matrix(DF)

      M Freq
 [1,]  1    1
 [2,]  2    2
 [3,]  3    3
 [4,]  4    4
 [5,]  5    5
 [6,]  6    6
 [7,]  7    5
 [8,]  8    4
 [9,]  9    3
[10,] 10    2
[11,] 11    1

第一列已更改。每个元素都减去1。为什么?

最佳答案

我终于找到了答案。

DF <- data.frame(table(M))
pmfY <- apply(as.matrix.noquote(DF),2,as.numeric)

pmfY的输出与表(M)完全相同。
pmfY
       M Freq
 [1,]  2    1
 [2,]  3    2
 [3,]  4    3
 [4,]  5    4
 [5,]  6    5
 [6,]  7    6
 [7,]  8    5
 [8,]  9    4
 [9,] 10    3
[10,] 11    2
[11,] 12    1

关于r - 如何将table()转换为R中的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46518838/

相关文章:

r - 通过使用 tibble 中不同行的值来改变值

matlab - 将 bsxfun 与具有三维矩阵的单例扩展一起使用

java - 为什么我不能在 Java 中使用变量声明三维数组?

r - 如何通过DiagrammeR在美人鱼(甘特图)中拥有超过4种颜色?

c++ - 我如何访问 OpenCV 中的高维矩阵元素?

c++ - 如何使用 opencv 库将 3D 矩阵的元素置零?

r - 如何根据逻辑从数值矩阵生成向量或因子(无 for 循环)

dplyr 中的 rowMeans 函数

r - 安装 RandForestGUI 时出错(因此出现 'rgl'、 'X11) in "R 版本 2.13.1 (2011-07-08))”

r - 逻辑回归双环 R