использовать один и тот же код для создания одинаковых графиков для других файлов одновременно - PullRequest
0 голосов
/ 12 июля 2011

Я написал коды для одного конкретного файла, и теперь я хочу сгенерировать графики и файлы того же типа для остальных похожих файлов данных, я написал следующие команды, однако это не работает... Когда я подключил эти коды, R создал только один график для файла «восемь», и в нем говорится о моей ошибке (см. Ниже). Я много раз редактировал и проверял свои коды, но все еще не мог понять, что не так сэто ... не могли бы вы мне помочь?

Я действительно очень ценю вашу помощь!

my.files <- list.files()
for (i in 1: length(my.files)) {
temp.dat <- read.csv(my.files[i])
eight <- read.csv(file="8.csv", header=TRUE, sep=",")
eightout <- subset(eight, inout=="Outgoing from panel hh" & o_duration>0, select=c(inout, enc_callee, o_duration))
f <- function(eightoutf) nrow(eightoutf)
eightnocalls <- ddply(eightout,.(enc_callee),f)
colnames(eightnocalls)[2] <- "nocalls"
eightout$nocalls <- eightnocalls$nocalls [match(eightout$enc_callee, eightnocalls$enc_callee)]
eightout=data.frame(eightout,"time"=c(1:nrow(eightout)))
M <- plot(eightout$time,eightout$nocalls)
pdf(paste(Sys.Date(),"_",my.files[i],"_.pdf", sep=""))
plot(temp.dat$time, temp.dat$nocalls, main=my.files[i])
dev.off() }

Это то, что R говорит Ошибка в plot.window (...): нужно конечнозначения 'xlim' Дополнительно: предупреждающие сообщения: 1: в min (x): нет не пропущенных аргументов для min;возврат Inf 2: в max (x): нет не пропущенных аргументов для max;возврат -Inf 3: в min (x): нет не пропущенных аргументов для min;возврат Inf 4: в max (x): нет не пропущенных аргументов для max;возвращая -Inf

1 Ответ

2 голосов
/ 12 июля 2011

Попробуйте вставить dev.off() после вашей команды plot ...? (Если вам нужна группа отдельных файлов. Если вам нужен один большой файл графиков, откройте файл PDF перед началом цикла и закройте его после окончания цикла.)

Попытка еще раз с очищенной версией кода выше.

my.files <- list.files("/E/Data")
for (i in seq_along(my.files)) {
  temp.dat <- read.csv(my.files[i])
   seven <- subset(alldata, aserno==7, select=c(I,C,D),
                     I=="o" & D>0)
   sevennumber <- ddply(sevenout,.(C), nrow)
   colnames(sevennumber)[2] <- "number"
   sevenout$number <- sevennumber$number[match(sevenout$C,sevennumber$C)]
   sevenout$time <- seq(nrow(sevenout))
   pdf(paste(Sys.Date(), my.files[i], "M.pdf", sep="_"))
   with(sevenout,plot(time, number, main=my.files[i])
   dev.off()  ## CLOSE pdf
   write.csv(sevenout,paste(Sys.Date(),
       my.files[i],"new_data.pdf”,sep="_"), row.names=FALSE)
}

Остальные странности / вопросы:

  • tmp.datout упоминается, но не определяется. Должно ли это было sevenout?
  • сюжет был сделан с type="n", что привело бы к пустой рамке сюжета. ???
  • Я предполагаю, что манипуляции правильные, так как я не могу их восстановить.
  • если сомневаетесь, попробуйте установить i <- 1 и вручную выполнить код внутри цикла, чтобы увидеть, что произойдет ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...