3
誰でもこのエラーが表示される理由を教えてください。
Error in as.integer(tm) : cannot coerce type 'S4' to vector of type 'integer
?
私はインターネットを検索していますが、問題を解決できませんでした。なぜ型 'S4'を型 '整数'のベクトルに変換できないのですか?
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)
}
これは解決されました。上記のコードは1つのフォルダ内の1つのファイルの計算を行います。残りのすべてのファイルについて同じことを続けるようにRに指示することはできますか。 –
@SamYemein最も簡単な方法は、 'long < - file(" C:\\ New folder(5)\\ inra.bin "、" rb ")'ステートメントの周りにループを構築し、配列からフォルダパスを構築することですファイル名の(i:1:10){filename < - paste( 'C:\\新しいフォルダ(5)\\'、 'filearray [i]'、sep = '')のようなものです。長い<-file(filename、 'rb'); {その他すべて}} ' –