почему вызывает неправильный формат '% d в R?

Приведенный ниже код предназначен для преобразования двоичных файлов из float32 в 16b с масштабным коэффициентом 10. Я получаю сообщение об ошибке аннулирования% d.

setwd("C:\\2001")
for (b in paste("data", 1:365, ".flt", sep="")) {
   conne <- file(b, "rb")
   file1<- readBin(conne, double(), size=4,  n=360*720, signed=TRUE)
   file1[file1 != -9999] <- file1[file1 != -9999]*10
   close(conne)
   fileName <- sprintf("C:\\New folder (11)\\NewFile%d.bin", b)
   writeBin(as.integer(file1), fileName, size = 2) 
}

Результат

Error in sprintf("C:\\New folder (11)\\NewFile%d.bin",  : 
invalid format '%d'; use format %s for character objects

Я использовал%s как предложил Р. Но файлы из 1: 365 были совершенно пустыми

Ответы на вопрос(1)

%d является заполнителем для целочисленной переменной внутри строки. Поэтому, когда вы используетеsprintf(%d, var), var должно быть целым числом.

В твоем случае переменнаяb - это строка (или символьный объект). Таким образом, вы используете заполнитель для строковых переменных, который является%s.

Теперь, если ваши файлы пусты, в вашем коде должно быть что-то не так. Вам следует задать еще один более конкретный вопрос.

ВАШ ОТВЕТ НА ВОПРОС