2017-07-06 97 views
-1

我正在R中建立一个模型,我有一个Kelvin(.csv文件)日温度数据的数据框。我将为每个车站分别运行模型。我将模型建立在状态之外的文献是:当温度升高到285.15以上时,诱发产卵,ER或有效的再生储备减少到0,这意味着我的图形输出应该降到零,并在温度降低后再次开始攀升。如果其他模型没有响应

enter image description here

我的问题是:我怎么会写这个命令为R?
到目前为止,我已经写了:

spawn <- ER 
spawning <- ifelse(Mussel_Daily_Temp$AS_TEMP > 285.15, 'ER-ER', 0) 

我也曾尝试:

if(temperature > 285.15) {ER-ER} 

我的参数是这样的:

param <- list(Temperature = Mussel_Daily_Temp$AS_TEMP, etc....) 

任何帮助将非常感激!

最佳,

Ĵ

+1

也许我没有正确理解这一点,但你只是想当一个标志,当温度超过285.15?你可以这样做:'Mussel_Daily_Temp $ temp_flag = 0; Mussel_Daily_Temp $ temp_flag [Mussel_Daily_Temp $ AS_TEMP> 285.15] = 1',那将至少标记那个温度。 – svenhalvorson

+0

它给了我这个错误:错误'* tmp *'$ Mussel_Daily_Temp:'closure'类型的对象不是子集合 –

+0

对不起,我不得不编辑它。你确定这失败了吗? Mussel_Daily_Temp $ AS_TEMP需要用>符号 – svenhalvorson

回答

2

没有数据例子,这是一个小小的挑战...

现在您是在任何一个临时> 285.15

简单地创建一个0
spawn <- ER 
spawning <- ifelse(Mussel_Daily_Temp$AS_TEMP > 285.15, 'ER-ER', 0) 

我对数学的理解有限,认为ER-ER将等于零 - 因此,您的ifelse语句中的TRUE或FALSE结果都为0.

如果设置产卵的温度

spawn <- ER[Mussel_Daily_Temp$AS_TEMP == 285.15] 

然后调整自己的ifelse语句

spawning <- ifelse(Mussel_Daily_Temp$AS_TEMP > 285.15, 'ER-spawn', 0) 

我想你会得到一些接近你在找什么。

+0

谢谢你的回应。不幸的是,它正在返回:'eval(ei,envir)中的错误:未找到对象ER'。 ER是我的状态的一部分:'state < - c(E = 0.000124,V = 0.06,ER = 0)' –

+1

再次 - 如果您提供了您的数据的实际示例,则可以解决此问题。没有它你自己。 –