如何在 R 中使用方程式处理我的数据?

How to use an equation with my data in R?

我正在努力进行一些研究的部分数据分析。其他研究人员使用方程式来估算我想要实施的人口增长率,但我在尝试这样做时遇到了困难。下面是等式:

其中 N0 是群组中女性的初始数量, Ax 表示第 X 天出现的雌性数量,Wx 是第 x 天雌性平均体型的量度 每个重复,f(wx) 是一个将生育力与雌性大小相关的函数,D 是时间(以天为单位) 供女性繁殖。

N0 (n=15) 和 D (7) 是我可以放入等式中的固定数字。 f(wx) 是我拥有的函数 (y = 91.85x - 181.40)。以下是我的一小部分数据:

df <- data.frame(replicate = c('1','1','2','2','3','3','4','4'),
size = c(5.1, 4.9, 4.7, 4.6, 5.1,2.4,4.3,4.4),
  day_emerging = c('6','7','6','7','6','8','7','6'))

如果这对本网站来说是个糟糕的问题,我深表歉意。我只是迷失了如何处理这个。我需要 R 才能计算不同日期的等式。我不确定我当前的数据格式是否真的可行,因为 R 必须计算出在第 x 天出现了多少雌性,然后执行当天的其他计算。所以也许这是不可能的。

非常感谢您提供的任何建议。

这个问题的答案并不是特定于 R 的,而是一种技能本身。您要做的是将一种形式化的数学语言翻译成适用于 R(或 Python 或 Matlab 等)的语言。

这是一项值得培养的技能。在 python-like 伪代码中:

numerator = math.log((1 / n_0) * sum(A * f(w))
denominator = D + (sum(X * A * f(w)) / sum(A * f(w))
r_prime = numerator / denominator

如您所见,您必须先设置许多未知变量。此外,需要在脚本的前面将 f(w) 定义为辅助函数,以便可以使用它们。一般来说,您只是希望能够将您的等式分解成您可以验证其正确性的小部分。

对这些东西进行一些单元测试非常有帮助 - 将等式打包为一个函数(或一组您将一起使用的小函数)并向其提供您已经 运行 的数据通过方程式并以另一种方式验证 - 手动或更熟悉的包。这样,您只需担心用正确的语法表达它,然后就会知道什么时候一切都正确了。

这是一个基本的 R 解决方案。希望这就是你想要的

dfs <- split(df,df$day_emerging)
p <- sum(sapply(dfs, function(v) nrow(v)*f(mean(v$size))))
q <- sum(sapply(dfs, function(v) nrow(v)*as.numeric(unique(v$day_emerging))*f(mean(v$size))))
res <- log(p/n)/(D + q/p)

这样

> res
[1] 0.5676656

数据

n <- 15
D <- 7
f <- function(x) 91.85*x-181.4
df <- data.frame(replicate = c('1','1','2','2','3','3','4','4'),
                 size = c(5.1, 4.9, 4.7, 4.6, 5.1,2.4,4.3,4.4),
                 day_emerging = c('6','7','6','7','6','8','7','6'))