Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何打印函数的计算方法_R_Function_Printing - Fatal编程技术网

R 如何打印函数的计算方法

R 如何打印函数的计算方法,r,function,printing,R,Function,Printing,给出了以下问题: 编写一个函数polyPrint,它可以很好地打印等式(1)的多项式。例如 如果a对应于向量c(2,0,1,-2,5),则多打印(a)应打印: 2+x^2+(-2)*x^3+5*x^4 请注意,polyPrint应该如何处理a元素为0、1或负数的情况 目前,我正在使用一个环和猫。这相当粗糙,因为我需要对1,0和任何负数的ifelse语句进行大量的例外 我是否可以使用其他功能来简化此流程 # Regular function polyFunction <- function(

给出了以下问题:

编写一个函数polyPrint,它可以很好地打印等式(1)的多项式。例如 如果a对应于向量c(2,0,1,-2,5),则多打印(a)应打印:

2+x^2+(-2)*x^3+5*x^4

请注意,polyPrint应该如何处理a元素为0、1或负数的情况

目前,我正在使用一个环和猫。这相当粗糙,因为我需要对1,0和任何负数的ifelse语句进行大量的例外

我是否可以使用其他功能来简化此流程

# Regular function
polyFunction <- function(x,a){
  n <- seq(1, length(a))
  sum(ax^(n-1))
}

# Printing the calculation method
a <- c(2,0,1,-2,5)

polyPrint <- function(a){
  n <- seq(1, length(a))
  for(i in n){
    result <- c()
    result <- c(result, cat(a[i],'x^', 1+i, '+ '))
  }
}

polyPrint(a)
#常规函数

多功能我认为在聚合值的方式以及考虑特殊值(0,1,负值)的方式上存在错误。 下面是一个如何做到这一点的示例(可能不是最好的解决方案,但它可以做到这一点):


@罗纳克沙,你说得对,我修正了我的功能。谢谢
polyPrint <- function(a){
  formule = NULL
  for(i in 1:length(a))
  {
    if(a[i]==0){}
    else{
      if(i == 1) {formule = a[i]}
      else{
        if(a[i]<0){formule = paste0(formule, " + (",a[i],")x^",i)}
        else{
          if(a[i] == 1){formule = paste0(formule," + x^",i)}
          else{formule = paste0(formule, " + ", a[i],"x^",i)}
        }
      }
    }
  }
  print(formule)
}
> polyPrint(a)
[1] "2 + x^3 + (-2)x^4 + 5x^5"