r - 在 R 中填充矩阵
问题描述
我有一个填充了下三角形的矩阵,并想用下三角形的匹配值填充矩阵的上三角形。
我一直在尝试的代码是:
r <- read.table("rcorrected.csv", header = TRUE, sep = ",", check.names = FALSE)
m <- as.matrix(r)
m[upper.tri(m, diag = FALSE)] <- m[lower.tri(m, diag= FALSE)]
输出:
Warning message:
In m[upper.tri(m, diag = FALSE)] <- m[lower.tri(m, diag = FALSE)] :
number of items to replace is not a multiple of replacement length
structure(m)
1 2 3 4 5 6 7 8 9 10 11 12
[1,] 1 1.00 NA NA NA NA NA NA NA NA NA NA NA
[2,] 2 0.50 1.00 NA NA NA NA NA NA NA NA NA NA
[3,] 3 0.57 0.50 1.00 NA NA NA NA NA NA NA NA NA
[4,] 4 0.00 0.04 0.16 1.00 NA NA NA NA NA NA NA NA
dput(head(m[, c(2,1)]))
structure(c(1, 0.5, 0.57, 0, 0, 0.23, 1, 2, 3, 4, 5, 6), .Dim = c(6L,
2L), .Dimnames = list(NULL, c("1", "")))
矩阵 m 是否被读取为列表?
解决方案
在这里,我们在分配diag = TRUE
的 rhs 上分配不相等数量的观察值,并且diag = TRUE
应该lower.tri
在函数内部而不是函数外部
m[upper.tri(m, diag = FALSE)] <- m[lower.tri(m, diag= FALSE)]
推荐阅读
- python - pyinstaller:“没有这样的文件或目录”,但程序继续执行
- json - 如何设置项目中文件的路径?
- jquery - 根据单选按钮选择更改标签文本
- javascript - 如何从表单中获取值并显示在文本区域中?
- elasticsearch - Elasticsearch 连接被拒绝(拨号 tcp 172.20.0.6:9200 ) - Articulate v0.21.2 发布
- svg - SVG尺寸控制
- google-cloud-firestore - Firestore - 在请求但未找到文档或读取过期文档时触发?
- python-3.x - AstroPy 获取当前位置的恒星时间
- c - 比较字符串中的 N 个字节
- ios - UITableViewCell 和 UIImageView 里面的动态高度