Может кто-нибудь объяснить, почему функция setdiff в R не работает в следующем примере? Обратите внимание, что это не имеет значения, если я использую базу R или dplyr.
#setdiff doesn't work
poly1 <- polynom::polynomial(c(-2,1))
poly2 <- polynom::polynomial(c(-4,0,1))
solve_poly1 <- solve(poly1)
solve_poly2 <- solve(poly2)
print(solve_poly2)
print(solve_poly1)
setdiff(solve_poly2, solve_poly1)
dplyr::setdiff(solve_poly2, solve_poly1)
#what is the structure?
str(solve_poly1)
str(solve_poly2)
#setdiff works
set1 <- c(2)
set2 <- c(-2,2)
setdiff(set2, set1)
dplyr::setdiff(set2, set1)
#what is the structure?
str(set1)
str(set2)
Вот мой вывод:
> #setdiff doesn't work
> poly1 <- polynom::polynomial(c(-2,1))
> poly2 <- polynom::polynomial(c(-4,0,1))
> solve_poly1 <- solve(poly1)
> solve_poly2 <- solve(poly2)
> print(solve_poly2)
[1] -2 2
> print(solve_poly1)
[1] 2
> setdiff(solve_poly2, solve_poly1)
[1] -2 2
> dplyr::setdiff(solve_poly2, solve_poly1)
[1] -2 2
> #what is the structure?
> str(solve_poly1)
num 2
> str(solve_poly2)
num [1:2] -2 2
> #setdiff works
> set1 <- c(2)
> set2 <- c(-2,2)
> setdiff(set2, set1)
[1] -2
> dplyr::setdiff(set2, set1)
[1] -2
> #what is the structure?
> str(set1)
num 2
> str(set2)
num [1:2] -2 2
Основываясь на структуре моих массивов, я не могу понять, почему полиномиальные корни обрабатываются иначе, чем массивы, объявленные вручную.