如何解决这个错误:数据错误,frame(values = unlist(unname(x)),ind,stringsAsFactors = FALSE):参数暗示不同的行数:四、零

a9wyjsp7  于 2023-09-27  发布在  其他
关注(0)|答案(2)|浏览(147)

我有个问题我正在使用R创建一个物种分布模型,但是当我尝试运行堆栈线(模型的气候层)时,R的反馈给我:

Error in data.frame(values = unlist(unname(x)), ind, stringsAsFactors = FALSE) : 
  arguments imply differing number of rows: 4, 0

下面是我代码:

options(java.parameters = "-Xmx1g")
library(raster)
library(dismo)
setwd("C:/Tesis_MDE")
occs <- read.csv("./Registros_CASGMII.csv")
View(occs)
layers<- stack(list.files("./M/presente1","*.asc$",full.names=T))

如果你能帮我就太好了,我走投无路了!!哈哈

w3nuxt5m

w3nuxt5m1#

我不能提供一个答案(我没有足够的声誉,只是评论),因为我不能阅读您的数据,以检查他们的结构是什么等。建议提供一个可重复的示例:https://stackoverflow.com/help/minimal-reproducible-example.我被你的问题绊倒了,因为我有同样的错误消息,但对我来说,这就像忘记附加库(光栅)一样简单(也很尴尬)。在这种情况下,错误消息可能只是告诉您命令找不到数据-因此,可能您的问题实际上与引用要读入的数据有关?是什么

list.files("./M/presente1","*.asc$",full.names=T)

真的给予你?

oxcyiej7

oxcyiej72#

我发这篇文章很晚了,但是我觉得这个错误信息在我收到的时候并不清楚,所以我在这里发表了我的解释。在这种情况下,错误是由于utils::stack使用不当而引发的。

unnamed.list <- list(c(1,2,3), c(4,5), c(6))
print(unnamed.list)
#> [[1]]
#> [1] 1 2 3
#> 
#> [[2]]
#> [1] 4 5
#> 
#> [[3]]
#> [1] 6

# this will error
stack(unnamed.list)
#> Error in data.frame(values = unlist(unname(x)), ind, stringsAsFactors = FALSE): arguments imply differing number of rows: 6, 0

# this will work fine
names(unnamed.list) <- seq_along(unnamed.list)
stack(unnamed.list)
#>   values ind
#> 1      1   1
#> 2      2   1
#> 3      3   1
#> 4      4   2
#> 5      5   2
#> 6      6   3

# list.files doesn't even return a list, rather a character vector...
# this will error
stack(LETTERS)
#> Error in data.frame(values = unlist(unname(x)), ind, stringsAsFactors = FALSE): arguments imply differing number of rows: 26, 0

创建于2023-09-26附带reprex v2.0.2
您的错误表明list.files返回了一个包含4个元素的字符向量,而stack不知道该怎么做,因为它的第一个参数必须是list或data. frame。请参见?utils::stack

相关问题