首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >source():错误:替换的长度为零

source():错误:替换的长度为零
EN

Stack Overflow用户
提问于 2019-10-01 16:38:37
回答 2查看 84关注 0票数 0

我不知道问题可能出在哪里,也不知道如何为您提供一些示例数据:我有一个相当长的脚本,所以我将其分成几部分。第二部分是关于列的合并。我通过直接测量他们在过去3年中的增量来测量从山毛榉获得的增量。对于云杉来说,这比较容易,我可以只测量今年尖端的高度,然后测量螺纹的高度。就像今年的高度-下一个螺纹的高度就是今年的增量。为了形成一个带有增量i的公共列(后来将其重命名),我做了一个循环:

代码语言:javascript
复制
for (i in 1:nrow(df)) {
  if(df$Species[i]=="Fi"){
    print(i)
    df$`Length Beech 2019 [cm]`[i] <- df$`Height [cm] 2019`[i] - df$`Höhe Spruce 2018 [cm]`[i]
  } 
}

这个部分在相同的脚本中运行得很完美。但如果我将重新排列数据帧的整个部分复制到另一个R脚本,

代码语言:javascript
复制
> source("2 RedesignDF.R")
[1] 2
Error in df$`Length Beech 2019 [cm]`[i] <- df$`Height [cm] 2019`[i] -  : 
  replacement has length zero

我明白这个错误。前10个值为:

代码语言:javascript
复制
> str(df$`Length Beech 2019 [cm]`)
 num [1:113] 25 NA NA 25 23 NA 14.5 19.5 NA NA ...
> str(df$`Height [cm] 2019`)
 num [1:113] 302 186 188 306 258 ...
> str(df$`Höhe Spruce 2018 [cm]`)
 num [1:113] NA 176 178 NA NA ...

我的第一棵树是山毛桃树,因此第一棵云杉的高度是空的。我假设这是我错误的根源,但我的困惑源于这样一个事实,即在相同的脚本中运行它时,这不是问题。

我做了一些样本数据:

代码语言:javascript
复制
Species <- c("Bu", "Fi", "Fi", "Bu", "Bu", "Fi", "Bu", "Bu", "Fi", "Fi")
`Length Beech 2019 [cm]` <- c(15.5, NA, NA, 23, 20, NA, 14, 18.5, NA,  NA)
`Height [cm] 2019` <- c(298, 179.5, 306.5, 306.5, 258.5, 188.5, 186, 301.5, 244, 192)
`Höhe Spruce 2018 [cm]` <- c(NA, 169.5, 271, NA,  NA, 170,  NA, NA, 233.5, 188)

df <- data.frame(Species, `Length Beech 2019 [cm]`, `Height [cm] 2019`, `Höhe Spruce 2018 [cm]`)

如果有人能给我解释一下,为什么会这样,我会很高兴的。

谢谢你的支持!

EN

回答 2

Stack Overflow用户

发布于 2019-10-01 17:09:35

我执行了您的代码,发现它甚至不能在相同的脚本中产生输出。您可以看到,在执行代码之后,您给出的输出与输入是相同的。

我已经纠正了你的代码,它正在产生输出。您也可以在另一个r脚本中尝试它。

代码语言:javascript
复制
for (i in 1:nrow(df)) {
  if(df$Species[i]=="Fi"){
    print(i)
    df$Length.Beech.2019..cm.[i] <- 
              df$Height..cm..2019[i] - df$Höhe.Spruce.2018..cm.[i]
  } 
}
票数 1
EN

Stack Overflow用户

发布于 2019-11-05 18:05:36

我找到了答案。Source不能与ä、ö、ü和?一起使用。因此,要么必须删除所有这些参数,要么必须指定编码。

代码语言:javascript
复制
source("2 RedesignDF.R", encoding = "UTF-8")

无论如何,感谢大家的帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58181003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档