我想测试R 4.1.1中矩阵的对称性.我有一个数据帧,然后我把它转换成一个矩阵.带有class()函数的数据类型现在返回"matrix""array".矩阵是对称的,但函数isSymmetric()返回FALSE.

这就是我所做的:

## Sample dataframe
mat1=data.frame(one=c(64,1,2,0),two=c(1,0,0,0),three=c(2,0,6,45),four=c(0,0,45,140))
## now we convert it to matrix
mat2 = as.matrix(mat1)
class(mat2)
## Note how this will return FALSE, even when its symmetric
isSymmetric(mat2)
## Now I turn the matrix into a vector and convert it again.
mat3 = matrix(as.numeric(mat2),
            nrow = dim(mat2)[1])
class(mat3)
## Now this works:
isSymmetric(mat4) 

我的问题是:除了熔化矩阵并再次构建它之外,还有更直接的方法来判断矩阵的对称性吗?我需要阅读许多大型矩阵,这是一种非常复杂的处理方法.

推荐答案

根据文件:

注意,矩阵m只有在其行名和列名相同时才是对称的.考虑使用未命名(m).

isSymmetric(unname(mat2))
[1] TRUE

R相关问答推荐

计算转换的次数

按条件计算观察次数

是否有任何解决方案可以优化VSCode中RScript的图形绘制?

多个ggpredicate对象的平均值

在ggplot的注释表格中突出显示最大值

具有多个依赖变量/LHS的逻辑模型

基于shiny 应用程序中的日期范围子集xts索引

根据列表中项目的名称多次合并数据框和列表

咕噜中的元素列表:map

R Tidymodels textercipes-使用spacyR进行标记化-如何从生成的标记列表中删除标点符号

Highcharter多次钻取不起作用,使用不同方法

如何在ggplot图中找到第二轴的比例

将数字转换为分钟和秒

在使用bslb和bootstrap5时,有没有办法更改特定dt行的 colored颜色 ?

R Select()可以测试不存在的子集列

如何将网站图像添加到带有极坐标的面包裹条形图?

在R中创建连续的期间

提高圣彼得堡模拟的速度

如何判断代码是否在R Markdown(RMD)上下文中交互运行?

是否从列中删除★符号?