Неверное количество измерений: извлечение элементов из нескольких файлов rdata

ПРОБЛЕМА У меня много .RData файлов в одной папке, и я хочу извлечь координаты, продолжающиеся в каждом .rdata файле. Я также хотел бы связать сопутствующий файл name(use_hab) и datetime(dt) с каждой строкой их соответствующих координат.

КОД

file.namez<-list.files("C:/fitting/fitdata/7 27 2015") #name of files
#file.namez.rev<-file.namez[grep(".RData",file.namez)]

datastor<-data.frame(matrix(NA,length(file.namez),4))
names(datastor)<-c("use_hab",paste("B",1:3,sep=""))

allresults<-NULL

for(i in 1:length(file.namez))
  {
  datastor<-NULL
  print(file.namez[i])
  load(paste("C:/fitting/fitdata/7 27 2015/",file.namez[i], sep=""))
  use_hab <- as.character(as.data.frame(strsplit(file.namez[i],"_an"))[2,])# this line is used to remove unwanted parts of the file name
  use_hab <- gsub(".RData","", use_hab)
  datastor <- fitdata$coords
  datastor$use_hab <- use_hab
  datastor$dt <- fitdata$dt
  allresults <- rbind(allresults, datastor[,c(3,4,1,2)])
}

Это только результат перед сообщением об ошибке:

[1] "fitdata_anw514_yr2008.RData"

ОШИБКА

Ошибка в хранилище данных [, c(3, 4, 1, 2)] : неправильное количество измерений
Кроме того: Предупреждающее сообщение:
В хранилище данных$use_hab ‹- use_hab : Приведение LHS к списку

ВОПРОС Как я могу получить неправильное количество измерений? Каждое имя файла должно иметь 1098 координат и дату и время. Всего 63 файла x 1098 строк с 4 столбцами (имя файла, дата и время, x, y).

Желаемый результат состоит в том, чтобы иметь имя файла в качестве первого столбца, дату и время во втором столбце, а координаты x и y в качестве третьего и четвертого столбцов.


person EJrandom    schedule 14.11.2015    source источник
comment
Загрузите каждый файл, каждый раз набирая ls(), чтобы увидеть новые объекты. Запустите str() и/или dim() для подтверждения размеров. Если их много, просто автоматизируйте это (store.dim <- list(); ..... ; store.dim[[i]] <- dim(object[i]))   -  person rbatt    schedule 14.11.2015
comment
@rbatt, не могли бы вы уточнить упомянутый вами процесс автоматизации?   -  person EJrandom    schedule 14.11.2015
comment
@rbatt, не могли бы вы рассказать об упомянутом вами автоматическом процессе? Вы имели в виду сохранение размеров того, что находится в файлах rdata, или того, что должен производить цикл?   -  person EJrandom    schedule 14.11.2015


Ответы (1)


Заменять

  datastor <- fitdata$coords

с

 datastor$coords <- fitdata$coords

Сообщение об ошибке Coercing LHS to a list выдается, когда вы пытаетесь получить доступ к чему-то с помощью $, которое не поддерживает это. datastor <- fitdata$coords изменяет datastor на тип данных fitdata$coords.

Кроме того, вы изменили бы

allresults<-NULL
datastor<-NULL

to

allresults <- data.frame()
datastor <- data.frame()

но это может быть просто мое личное предпочтение.

person psychOle    schedule 11.07.2017