gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:29:50 25 4
gpt4 key购买 nike

我有一个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/

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