我想要导入一个6x6的相关矩阵:
1.0000
0.6008 1.0000
0.4984 0.4749 1.0000
0.1920 0.2196 0.2079 1.0000
0.1959 0.1912 0.2010 0.4334 1.0000
0.3466 0.2979 0.2445 0.3197 0.4207 1.0000
我已尝试直接使用scan(),但不会输入矩阵。
A <- matrix(scan("data.txt", n = 6*6), 6, 6, byrow = TRUE)
这不起作用,因为“数据长度[21]不是行数的子数倍或倍数[6]”。
可以使用哪些其他方法导入外部预先存在的相关矩阵?
答案 0 :(得分:3)
您确实可以单独使用count.fields
和read.table
(see here),但我认为最合适的解决方案是使用{{1}制作xpnd的对称矩阵(UD中没有MCMCpack
)。
NA
给你
max_col <- max( count.fields("data.txt", sep = " ") ) # Insert \t if tab-separated
library(MCMCpack)
A <- read.table("text.txt", sep=" ", fill=TRUE, col.names=1:max_col)
corr <- xpnd( A[lower.tri(A, diag=T)] , max_col)