4

このエラーが発生する理由を誰かに教えてもらえます
Error in as.integer(tm) : cannot coerce type 'S4' to vector of type 'integerか?
インターネットを検索していますが、問題を解決できませんでした。

      library(Matrix)
     long <- file("C:\\New folder (5)\\inra.bin", "rb")
     A=readBin(long, integer(), size=2,n=67420*1, signed=F)
    ta<-t(A)
  lot <- file("C:\\New folder (5)\\lat.img", "rb")
    B=readBin(lot, integer(), size=2,n=67420*1, signed=F)
     tb<-t(B)
       wind <- file("C:\\Wind_WFD_200201.bin", "rb")
       C=readBin(wind, double(), size=4,n=67420*248, signed=TRUE)
        D<-matrix(C,nrow=248,ncol=67420)
         for(d in 1:31)
       {
        M <- Matrix(-9999, 360, 720)
         tm<-t(M)
       for(i in 1:67420)
       {
    tm[ta[i],tb[i]]= 10 * ((D[(d-1)*8+1,i] + D[(d-1)*8+2,i] +D[(d-1)*8+3,i] +D[(d- 1)*8+4,i] +D[(d-1)*8+5,i] +D[(d-1)*8+6,i] +D[(d-1)*8+7,i] +D[(d-1)*8+8,i] ) / 8)

 }###gooooooood
 to.write <- sprintf("C:\\Yar_%0d.bin", d)
 writeBin(as.integer(tm), size=2,to.write)

}

4

1 に答える 1

2

RでS4オブジェクトのファイルを分割して書き込む方法を見てください。あなたの場合、MatrixS4オブジェクトを返すように見えます。これを試して:

foo <- Matrix(10,10,10)
slotnames(foo) 

tmそれはあなたがあなたのオブジェクトから何を抽出したいかについての提案を与えるかもしれません。
しかし、なぜMatrixそもそも使用しているのですか?この問題を使用するだけbase::matrixで消えるはずです。編集:パッケージのドキュメントを見ると、サポートされていないMatrix,ことは明らかです。as.integerおそらくas(x,matrix)最初に使用する必要があります。

于 2012-04-27T11:26:14.050 に答える