【发布时间】:2021-09-22 17:56:25
【问题描述】:
我正在尝试应用一个函数来计算一些变量。我的输出应该是这样的:
在 D 列中,红色是 C 列的计算方式。这就是我使用函数match 的原因。要减去的数字 (1000) 应该是 A 列中第一个 R 出现的数字。我之前从未使用过match,所以这里或我的函数中的其他任何地方可能有问题。
这就是我所做的:
library(dplyr)
p_hi <- 0.472
rate_increase_hi <- 1.058*10^(-3)
seed.mass.fraction.f<-function(stage, p_hi, rate_increase_hi, c_total_biomass, c_biomass_during_rep){
seed.mass.fraction <- 0
if(stage == "V") {rate_increase_hi = 0}
if(stage == "R") {rate_increase_hi = rate_increase_hi}
if(stage == "V") {c_biomass_during_rep = 0}
if(stage == "R") {c_biomass_during_rep = c_total_biomass - c_total_biomass(match("R", stage))}
if(seed.mass.fraction < p_hi) {seed.mass.fraction = rate_increase_hi * c_biomass_during_rep}
if(seed.mass.fraction >= p_hi) {seed.mass.fraction = p_hi}
return(seed.mass.fraction)
}
c_total_biomass <- seq(0, 1600, 100)
stage <- c(rep("V", 10), rep("R", 7))
data.smf<- data.frame(cbind(stage, c_total_biomass)) %>%
mutate(c_total_biomass = as.numeric(c_total_biomass)) %>%
rowwise() %>%
mutate(smf = seed.mass.fraction.f(stage, p_hi, rate_increase_hi, c_total_biomass, c_biomass_during_rep)) %>%
ungroup()
我收到此错误:
Error: Problem with `mutate()` column `smf`.
i `smf = seed.mass.fraction.f(...)`.
x could not find function "c_total_biomass"
i The error occurred in row 11.
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。