文本文件中的相关矩阵

g

我正在尝试从文本文件中获取相关矩阵。我想从这些文件中获取相关值。

文本文件我有什么

[56] "[1] \”values “”of the                                                                                                          
[57] "[1] \”e”xamples                                                                                                              
[58] "[1] \”dummy “”lines                                                                                            
[59] "[1] \”testing”                                                                                                                     
[60] "[1] \"Correlation Values\””                                                                                                         
[61] "[1] \"Correlation between XXX and YYY: 0.7054 (0.0429)\""                                                                            
[62] "[1] \"Correlation between XXX and ZZZ: 0.601 (0.0289)\""                                                                             
[63] "[1] \"Correlation between YYY and ZZZ: 0.6434 (0.0306)\""                                                                            
[64] "[1] \”Finished\””                                                                                        
[65] "[1] \”testing “”linne                                                                            
[66] “test”                                                                                                                                          
[67] “test “again   

矩阵看起来像

      XXX       YYY      ZZZ
XXX   1        0.7054    0.601
YYY   0.7054   1         0.6434
ZZZ   0.601    0.6434    1

我了解其中涉及到一些正则表达式技术,但认为对于像我这样的新手来说,它太先进了。我可以使用以下代码从文件中获得所需的行,但仍然无法通过锻炼来提取这些数字并放入矩阵中。

mm[grep("Correlation Values”, mm, value = FALSE) + c(1:3)] ## m is the above file that I loaded.

为了增加复杂性,所有文件中的变量和数字都会更改。说这是4 * 4矩阵的情况

[95] "[1] \"Correlation Values\””                                                                                                                                 
 [96] "[1] \"Correlation between XXX and YYY: 0.7054 (0.0429)\""                                                                                                    
 [97] "[1] \"Correlation between XXX and ZZZ: 0.601 (0.0289)\""                                                                                                     
 [98] "[1] \"Correlation between XXX and CCC: 0.0178 (0.0281)\""                                                                                                    
 [99] "[1] \"Correlation between YYY and ZZZ: 0.6434 (0.0306)\""                                                                                                    
[100] "[1] \"Correlation between YYY and CCC: 0.0103 (0.0286)\""                                                                                                    
[101] "[1] \"Correlation between ZZZ and CCC: 0.0174 (0.0202)\""                                                                                                    
[102] "[1] \”Finished\””    
艾琳

好吧,无论如何这都是一个开始……虽然并不优雅,但是一步一步地使您仅将相关信息包含在列表中。我将您的文件放在一个名为sofile.txt的文件中。

# read the messy file
filedata <- readLines("../bugs/sofile.txt", warn = FALSE)
# get rid of lines you don't need.
preline<- grep("Correlation Values", filedata, fixed = TRUE)
postline<- grep("Finished", filedata, fixed = TRUE)
filedata <- filedata[(preline+1):(postline-1)]
# just keep the important parts of the strings
filedata <- substr(filedata, 33, nchar(filedata)-13)
filedata <- sub( ":", "", filedata, fixed = TRUE)
filedata <- sub( " and", "", filedata, fixed = TRUE)
# split them up and make a list
filedata_list<- strsplit(filedata, split = " ")
# put it into a matrix 
new <- Reduce(rbind, filedata_list)
# extract the variable names
names <- unique(c(new[,1], new[,2]))
#create a matrix of NAs with the right dimensions and names.
corrmat <- matrix(nrow =length(names),  ncol = (length(names)), dimnames = list(names, names))

然后,您将着手替换NA。您可以通过遍历列表来分配值来执行此操作。

再次丑陋,但可以帮助您入门。

for (i in 1:length(names)){
 corrmat[filedata_list[[i]][1], filedata_list[[i]][2]] <- filedata_list[[i]][3]
 corrmat[filedata_list[[i]][2], filedata_list[[i]][1]] <- filedata_list[[i]][3]
 corrmat[i, i] <- 1
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将文本文件导入为numpy中的矩阵

来自分类Dev

从Matlab中的文本文件加载大矩阵

来自分类Dev

如何从R中的文本文件读取矩阵

来自分类Dev

从C中的文本文件读取矩阵

来自分类Dev

从Julia中的文本文件读取数据矩阵

来自分类Dev

如何从R中的文本文件读取矩阵

来自分类Dev

如何在文本文件中编写矩阵?

来自分类Dev

R:删除存储在文本文件中的矩阵的空格

来自分类Dev

如何从C中的文本文件填充矩阵(结构)?

来自分类Dev

在python中读取矩阵文本文件

来自分类Dev

从文本文件创建矩阵-python

来自分类Dev

从文本文件创建矩阵

来自分类Dev

将文本文件中的矩阵解析为python中的实际(基于数组)矩阵?

来自分类Dev

去除相关矩阵中的NA

来自分类Dev

在R中创建相关矩阵

来自分类Dev

去除相关矩阵中的NA

来自分类Dev

将值与文本文件[Java]中的HashMap中的键相关联

来自分类Dev

如何将集合中的文本文件与fs集合中的图像相关联?

来自分类Dev

从文本文件中删除文本

来自分类Dev

将文本文件中的矩阵数据存储在c中的多维数组中

来自分类Dev

调试从服务器读取文本文件的C#代码中的相关错误

来自分类Dev

比较两个文本文件并找出python中的相关单词

来自分类Dev

在MATLAB中将文本文件中的数字组织到2列矩阵中

来自分类Dev

C编程错误相关的文本文件输入

来自分类Dev

分组相关矩阵

来自分类Dev

分组相关矩阵

来自分类Dev

从C中的文本文件中的文本文件中读取矩阵元素以及相应的行和列索引

来自分类Dev

从MATLAB仅将数值数据从文本文件中提取到矩阵中

来自分类Dev

读取文本文件并将其保存在基于Matlab Matlab的多个矩阵中

Related 相关文章

热门标签

归档