为什么我的R功能不打印值?

时间:2017-05-05 03:33:07

标签: r

  s <- seq(-10, 6, by = 0.1)

  my.fun = function(s) 
  { 
    n = length(s)
    s = 0
    for(i in 1:n)
    {     
      s = ((s[i]*s[i]*s[i]*s[i])*sin(1/s[i]) +(s[i]*s[i]))/(1+abs((s[i]*s[i]*s[i])))
    }
    s
  }

这是我的功能。我试图计算一系列数字,然后在等式中使用该序列。但是,它没有保存新的变量S,并且函数也不会打印任何东西。

2 个答案:

答案 0 :(得分:0)

您无法在函数本身的定义中返回输出。

执行my.fun(s)以返回s的输出。

在初始化s的值时也要确保没有0。由于你一次只做1 / s,你只会返回NaNs。

答案 1 :(得分:0)

有两个原因:

  1. 您在功能
  2. 中将1/s[i]设置为零
  3. 您的函数的主要内容包含s,因此s <- seq(-10, 6, by = 0.1) s = s[which(s != 0)] # to drop the zero from the vector my.fun = function(s) { n = length(s) for(i in 1:n) { s[i] = ((s[i]*s[i]*s[i]*s[i])*sin(1/s[i]) + s[i]*s[i]))/(1+abs((s[i]*s[i]*s[i]))) } s } my.fun(s) 不应包含任何零。
  4. 尝试

    import module