Voici quelques exemples de données:Appliquer prédire() entre data.frames dans les deux listes
df_1 = read.table(text = 'Year count var1
1951 12 380
1952 13 388
1953 11 400
1954 14 411
1955 14 422
1956 14 437
1957 12 451
1958 14 465
1959 13 481
1960 15 502
1961 17 522
1962 16 549
1963 14 572
1964 16 580', header = TRUE)
df_2 = read.table(text = 'Year count var1
1951 12 380
1952 13 388
1953 11 400
1954 15 411
1955 14 422
1956 15 437
1957 11 451
1958 14 465
1959 13 481
1960 15 502
1961 20 522
1962 17 549
1963 14 572
1964 16 592', header = TRUE)
lst1 = list(df_1, df_2)
#split data.frames within lst1 and create training and testing lists
lst_train = lapply(lst1, function(x) subset(x, Year < 1959))
lst_test = lapply(lst1, function(x) subset(x, Year > 1958))
Je demande le modèle de machine de vecteur de support (SVM):
library(e1071)
#run SVM model for all data.frames within lst_train
svm_fit_lst = lapply(lst_train, function(x) svm(count ~ var1, data = x))
Maintenant, je veux appliquer la fonction prediction()
entre svm_fit_lst
et lst_test
data.frames mais R me donne une erreur quand je lance le code suivant:
svm_pred_lst = lapply(lst_test, function(x) {predict(svm_fit_lst, newdata = x)})
Erreur dans UseMethod (« prédire »): aucune méthode applicable pour « prédire » appliqué à un objet de « liste » class
Je désire que la fonction predict()
à appliquer entre svm_fit_lst[1]
et lst_test[1]
, et svm_fit_lst[2]
et lst_test[2]
.
Une suggestion? Merci
vous avez en fait deux modèles dans 'svm_fit_lst', qui est un' list' et c'est pourquoi vous obtenez l'erreur. Donc cela fonctionnera: '{predict (svm_fit_lst [[1]], newdata = x)}' – mtoto
oui, j'ai deux modèles dans svm_fit_lst et je veux que svm_fit_lst [1] soit utilisé avec lst_test [1] et svm_fit_lst [ 2] avec lst_test [2] via la fonction predict(). – aaaaa
vous devriez probablement utiliser une boucle for dans ce cas. – mtoto