R 如何打印函数的计算方法
给出了以下问题: 编写一个函数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语句进行大量的例外 我是否可以使用其他功能来简化此流程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(
# 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"