r - 如何将MATLAB函数转换为R函数?
问题描述
我既是最大似然的新手,又是在 R 中编写循环函数。我正在使用 Matlab 中的函数,我想知道它是否在 R 中正确转录?因为我不熟悉 MATLAB,所以我没有简单的方法来检查它。该代码使用论文中的等式 (1) 和 (3) 。
#Matlab Code. The matlab code imposes two conditions under which lnpq takes different values depending on q.
p=N/K;
if q == 0
lnqp = log(p);
else
lnqp =((p^q)-1)/q;
end
Y = ((aa *((p*K/Ka)-1))-1)*lnqp;
#R code. In the R code function, I'm trying to impose similar conditions on lnpq. Here is my attempt. However, I don't know how to compare if the values obtained from Matlab are similar to R. I am not sure how to verify across platforms
p <- c(1:00)
skewfun <- function(aa, K, Ka, q){
Y <- ifelse(q = 0, ((aa *((p*K/Ka)-1))-1)*log(p),((aa *((p*K/Ka)-1))-1)*((p^q)-1)/q)
}
解决方案
输入可以是数值标量或向量。如果您没有 Matlab,您可以安装免费且与 Matlab 兼容的Octave,并在那里尝试原始的 Matlab 代码,然后将测试用例的输出与在同一测试用例上运行以下命令的结果进行比较,以确保它给出相同的结果。
f <- function(aa, N, K, Ka, q) {
p <- N / K
lnqp <- ifelse(q == 0, log(p), (p^q - 1) / q)
Y <- (aa * (p * K / Ka - 1) - 1) * lnqp
Y
}
aa <- 1; N <- 1; K <- 1; Ka <- 1; q <- 1 # test data: change to use your data
f(aa, N, K, Ka, q)
## [1] 0
推荐阅读
- amazon-web-services - Amazon UserData 引导脚本无法重新启动 pm2 进程
- javascript - 在ajax发布响应后工作的JQuery脚本不起作用
- javascript - 如何确定鼠标是否不在元素上?
- visual-studio-code - VSCode中带有特殊符号='“'的代码片段
- flutter - 如何在 Flutter 中同时实现 device_preview 和 auto_route 包
- ios - 我将如何遍历所有键以获得特定的子值?
- tensorflow - 在单节点多 GPU 训练中,我应该在哪里存储变量的最佳实践是什么?
- google-apps-script - 为 Add On 项目添加 Google API OAuth 范围
- excel - 如何检查工作表是否存在?
- python - Django 数据库路由器没有路由到正确的数据库