Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将pgm转换为矩阵_R_Pgm - Fatal编程技术网

R 将pgm转换为矩阵

R 将pgm转换为矩阵,r,pgm,R,Pgm,我需要将pgm文件转换为具有25行25列的csv文件 df <- read.delim("1_1.pgm", skip =3, row.names = NULL, sep = "," ,col.names = NULL, header = FALSE, fill = TRUE) write.csv(df, "test.csv") df要将向量转换为矩阵,只需使用矩阵功能: matrix(data, nrow, ncol) 根据

我需要将pgm文件转换为具有25行25列的csv文件

df <- read.delim("1_1.pgm", skip =3, row.names = NULL, sep = "," ,col.names = NULL, header = FALSE, fill = TRUE)
write.csv(df, "test.csv")

df要将
向量
转换为
矩阵
,只需使用
矩阵
功能:

matrix(data, nrow, ncol)
根据数据是否应按行而不是按列填充,您可以指定参数
byrow=TRUE

在您的特定情况下,使用
读线
读取文件:

pgm = readLines("1_1.pgm")
对于无法访问您的文件的其他用户,这里是来自
dput
的输出,可以简单地复制粘贴到R控制台中:

pgm = c("P2", "# Created by GIMP version 2.10.22 PNM plug-in", "25 25", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "2", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "2", "2", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "2", "2", "2", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "2", "2", "255", "2", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "2", "2", "255", 
"255", "2", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "2", "255", "255", "255", "2", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "2", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "2", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "2", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "2", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "2", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "2", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "2", "2", "2", 
"2", "2", "2", "2", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255", "255", "255", 
"255", "255", "255", "255", "255", "255", "255")
前三行是标题,可以删除,但请注意:

length(pgm) # 629
但是
25*25+3
628
,因此标头由4个元素组成,或者在末尾有另一个额外的元素

pgm = pgm[-(1:4)] # remove first 4 elements
pgm = as.numeric(pgm) # convert from character to numeric vector
pgm = matrix(pgm, 25, 25, byrow=TRUE) # populate matrix from pgm by rows

# pgm is now a matrix:
is.matrix(pgm) # TRUE
dim(pgm) # [1] 25 25

什么是
pgm
文件?看起来怎么样?我们应该神奇地知道它的内容吗?请提供最小的可复制示例,包括样本数据。pgm文件可以在gimp中查看,但也可以保存图像中颜色的数值,例如128>=为白色,当我复制并粘贴文件中的值时,就像您所做的一样,我是否无法使用read.delim读入值,然后执行相同的操作,而不必从文件本身进行复制?我试过这个df,谢谢你的回复,它非常有用!检查代码中的第一行。为了更清晰,我编辑了它。无需使用
read.delim
,您实际上并没有读取带分隔符的文件(至少在您的示例中,我不知道它是否适用于所有PGM)。只要用
readLines(“1_1.pgm”)
阅读整个文件就行了。啊,我明白了,该死的,我一直在试图弄清楚read.delim是如何把它弄得一团糟的,我想如果我知道readLines,我就可以解决它。非常感谢!:)