R Error in UseMethod(“predict”) : no applicable method for ‘predict’ applied to an object of class “c(‘double’, ‘numeric’)” (2 Examples)
On this page you’ll learn how to reproduce and fix the Error in UseMethod(“predict”) : no applicable method for ‘predict’ applied to an object of class “c(‘double’, ‘numeric’)” in R.
Creation of Example Data
data(iris) # Create train and test data frames set.seed(785683) |
data(iris) # Create train and test data frames set.seed(785683)
iris_train <- iris[sample(1:nrow(iris), 50), ] head(iris_train) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 22 5.1 3.7 1.5 0.4 setosa # 64 6.1 2.9 4.7 1.4 versicolor # 116 6.4 3.2 5.3 2.3 virginica # 142 6.9 3.1 5.1 2.3 virginica # 73 6.3 2.5 4.9 1.5 versicolor # 13 4.8 3.0 1.4 0.1 setosa |
iris_train <- iris[sample(1:nrow(iris), 50), ] head(iris_train) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 22 5.1 3.7 1.5 0.4 setosa # 64 6.1 2.9 4.7 1.4 versicolor # 116 6.4 3.2 5.3 2.3 virginica # 142 6.9 3.1 5.1 2.3 virginica # 73 6.3 2.5 4.9 1.5 versicolor # 13 4.8 3.0 1.4 0.1 setosa
iris_test <- iris[sample(1:nrow(iris), 50), ] head(iris_test) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 101 6.3 3.3 6.0 2.5 virginica # 29 5.2 3.4 1.4 0.2 setosa # 20 5.1 3.8 1.5 0.3 setosa # 84 6.0 2.7 5.1 1.6 versicolor # 60 5.2 2.7 3.9 1.4 versicolor # 10 4.9 3.1 1.5 0.1 setosa |
iris_test <- iris[sample(1:nrow(iris), 50), ] head(iris_test) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 101 6.3 3.3 6.0 2.5 virginica # 29 5.2 3.4 1.4 0.2 setosa # 20 5.1 3.8 1.5 0.3 setosa # 84 6.0 2.7 5.1 1.6 versicolor # 60 5.2 2.7 3.9 1.4 versicolor # 10 4.9 3.1 1.5 0.1 setosa
Example 1: Replicating the Error in UseMethod(“predict”) : no applicable method for ‘predict’ applied to an object of class “c(‘double’, ‘numeric’)”
predict(iris_test$Sepal.Length, iris_test) # predict function does not work # Error in UseMethod("predict") : # no applicable method for 'predict' applied to an object of class "c('double', 'numeric')" |
predict(iris_test$Sepal.Length, iris_test) # predict function does not work # Error in UseMethod("predict") : # no applicable method for 'predict' applied to an object of class "c('double', 'numeric')"
Example 2: Debugging the Error in UseMethod(“predict”) : no applicable method for ‘predict’ applied to an object of class “c(‘double’, ‘numeric’)”
iris_mod <- lm(Sepal.Length ~ ., iris_train) # Estimating a linear model using lm() |
iris_mod <- lm(Sepal.Length ~ ., iris_train) # Estimating a linear model using lm()
predict(iris_mod, iris_test) # Applying predict() function # 101 29 20 84 60 10 145 113 # 7.087006 4.952600 5.189978 6.584670 5.783520 4.890242 6.887789 6.619792 # 97 92 108 26 140 111 1 22 # 6.065013 6.374984 7.102409 4.916580 6.595594 6.436444 4.994808 5.149911 # 133 18 68 37 144 73 83 13 # 6.603922 4.996949 5.907770 4.928403 6.974111 6.365302 5.779239 4.781628 # 3 143 82 72 93 7 65 142 # 4.801778 6.223264 5.515523 5.889994 5.803437 4.954741 5.666579 6.400657 # 40 45 99 137 141 87 115 30 # 5.019006 5.457742 5.095031 6.861451 6.734826 6.485739 6.276174 5.000996 # 94 89 71 57 131 50 54 122 # 5.207692 6.040815 6.600773 6.572295 6.929530 4.910392 5.678953 6.134801 # 27 78 # 5.089692 6.647028 |
predict(iris_mod, iris_test) # Applying predict() function # 101 29 20 84 60 10 145 113 # 7.087006 4.952600 5.189978 6.584670 5.783520 4.890242 6.887789 6.619792 # 97 92 108 26 140 111 1 22 # 6.065013 6.374984 7.102409 4.916580 6.595594 6.436444 4.994808 5.149911 # 133 18 68 37 144 73 83 13 # 6.603922 4.996949 5.907770 4.928403 6.974111 6.365302 5.779239 4.781628 # 3 143 82 72 93 7 65 142 # 4.801778 6.223264 5.515523 5.889994 5.803437 4.954741 5.666579 6.400657 # 40 45 99 137 141 87 115 30 # 5.019006 5.457742 5.095031 6.861451 6.734826 6.485739 6.276174 5.000996 # 94 89 71 57 131 50 54 122 # 5.207692 6.040815 6.600773 6.572295 6.929530 4.910392 5.678953 6.134801 # 27 78 # 5.089692 6.647028