1

问题 我在一个文件夹中有很多.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"

错误

datastor[, c(3, 4, 1, 2)] 中的错误:维度数不正确
另外:警告消息:
在 datastor$use_hab <-use_hab 中:将 LHS 强制为列表

问题 我如何得到不正确的维数?每个文件名应该有 1098 个坐标和日期时间。总共有 63 个文件 x 1098 行,4 列(文件名、日期时间、x、y)。

期望的结果是将文件名作为第一列,将日期时间作为第二列,将 x 和 y 坐标作为第三和第四列。

4

1 回答 1

1

代替

  datastor <- fitdata$coords

 datastor$coords <- fitdata$coords

Coercing LHS to a list当您尝试访问$不支持此功能的内容时,将引发错误消息。的数据类型的datastor <- fitdata$coords变化。datastorfitdata$coords

另外,你会改变

allresults<-NULL
datastor<-NULL

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

但这可能只是我个人的喜好。

于 2017-07-11T10:05:54.653 回答