如何解决使用字符向量时出现循环数据帧错误
我目前正在使用R进行数据科学,并且通常编写循环以一次访问多个文件或对象。通常,这没有任何问题,但是最近在尝试运行以下代码时出现了问题:
setwd(PROJECT_FOLDER)
climate_forcing <- c("cf-1","cf-2","cf-3","cf-4")
#load all mean stacks from IM and create rasterstack
for (i in 1:NROW(climate_forcing)){
setwd(PROJECT_FOLDER)
setwd(paste0("time frames mcor/X variable/IM/",climate_forcing[i],"/ncstack/"))
file.names <- list.files(pattern = ".nc",recursive=T,full.names=F) #list all files with ".nc"
stopwords <- c(".nc","stack","/dLAI") #stopwords
names.short <- gsub(paste(stopwords,collapse="|"),"",file.names)
assign("names.short",paste0(names.short,climate_forcing[i]))
for (j in 1:NROW(file.names)){
assign(paste0(names.short[j],"_stack"),stack(file.names[j]))
}
}
返回错误消息:
Error in data.frame(values = unlist(unname(x)),ind,stringsAsFactors = FALSE) :
arguments imply differing number of rows: 1,0
我是前一段时间写的,之前已经运行过,我认为它曾经可以工作,因为那里有一个由类似脚本创建的文件。 无论如何,我都做了一些测试,并且似乎错误发生在for循环(带有变量j)的for循环中。我不确定是什么原因导致此错误,但是必须对“ file.names”和“ names.short”执行某些操作?当我比较它们时,它们的属性似乎是相同的,因为我是根据前者创建后者的,所以我认为是相同的。之所以这样创建它们,是因为我想创建对象来读取文件file.names的相应文件。 我得到的错误涉及data.frame,这使我感到困惑,因为我在这里使用字符向量。
也许有更多经验的人可以解决这个问题。 感谢您的帮助,如果有任何问题,我会尽力回答。
解决方法
好吧,事实证明R软件包有问题,我重新安装并重新加载了它们(光栅),现在它可以工作了。感谢任何人的贡献!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。