如果为零,则删除向量的最后一个条目

Remove last entry of vector if zero

如何确保向量的最后一个条目不为零?

# Current output
polycoefs("-x^{3}+3x^5-x-3x^3- 3x^5 - 1")
x^0 x^1 x^2 x^3 x^4 x^5 
 -1  -1   0  -4   0   0

# Intended output 
polycoefs("-x^{3}+3x^5-x-3x^3- 3x^5 - 1")
x^0 x^1 x^2 x^3 
 -1  -1   0  -4

如果:

result = polycoefs("-x^{3}+3x^5-x-3x^3- 3x^5 - 1")
x^0 x^1 x^2 x^3 x^4 x^5 
 -1  -1   0  -4   0   0 

如果你想做最后一个条目non-zero:

while(tail(result,1) == 0){
  result = result[-length(result)]
}

那个:

> result
x^0 x^1 x^2 x^3 
 -1  -1   0  -4 

您可以在返回结果之前将其添加到您的函数中。

如果你想删除所有的 0,你可以这样做(不知道为什么要保留 x2):

> result[-which(result == 0, arr.ind=TRUE)]
x^0 x^1 x^3 
 -1  -1  -4