首页 > 解决方案 > 如何将多个参数传递给R中的函数?

问题描述

所以,我想将多个参数值传递给一个函数,然后得到 n 长度的输出向量,所以我可以在 R 中绘制 (x,f(x))。这是代码:

f <- function(lambda) {
   sum((x-mu)/(1+lambda*(x-mu)))
}
lb <- (1-1/n)/(xmax - mu)
ub <- (1-1/n)/(xmin - mu)
lambda = seq(ub,lb,by=0.1)

如果我尝试直接将 lambda 向量应用于函数:f(lambda)我只得到一个值。如果我尝试,plot(lambda, f(lambda))我会收到一条错误消息:

Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' and 'y' lengths differ

我怎样才能传递 n 个参数并获得 n 维输出向量作为结果?提前致谢!

标签: r

解决方案


我会努力猜测你想要达到的目标。我希望我猜对了。

library(tidyverse)


plotLambda = function(xmin, xmax, n) tibble(
  lambda = seq(xmin, xmax, length.out=n),
  `f(lambda)` = mean(lambda)/(1+lambda*mean(lambda))
) %>% ggplot(aes(lambda, `f(lambda)`))+
  geom_line()+
  ggtitle(paste("Xmin:", xmin, "Xmax:", xmax, "n:", n))

plotLambda(0,1,1000)

在此处输入图像描述

plotLambda(0,5,1000)

在此处输入图像描述


推荐阅读