Hier einige Beispieldaten:Nehmen vorhersagen() zwischen data.frames innerhalb von zwei Listen
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))
ich die Support-Vektor-Maschine Modell beantrage (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))
Jetzt wünsche ich mich bewerben die prediction()
Funktion zwischen svm_fit_lst
und lst_test
data.frames aber R gibt mir einen Fehler, wenn ich den folgenden Code ausführen:
svm_pred_lst = lapply(lst_test, function(x) {predict(svm_fit_lst, newdata = x)})
Fehler in UseMethod („vorhersagen“): keine anwendbare Methode für ‚vorhersagen‘ auf ein Objekt der Klasse „Liste“ angewandt
Ich wünsche nur die predict()
Funktion zwischen svm_fit_lst[1]
und lst_test[1]
angewandt werden, und svm_fit_lst[2]
und lst_test[2]
.
Irgendwelche Vorschläge? Dank
Sie haben tatsächlich zwei Modelle innerhalb 'svm_fit_lst', das ist eine' liste' und deshalb erhalten Sie den Fehler. Das wird also funktionieren: '{predict (svm_fit_lst [[1]], newdata = x)}' – mtoto
ja, ich habe zwei Modelle innerhalb von svm_fit_lst und ich möchte svm_fit_lst [1] zusammen mit lst_test [1] und svm_fit_lst [ 2] mit lst_test [2] durch die Funktion predict(). – aaaaa
sollten Sie in diesem Fall wahrscheinlich eine for-Schleife verwenden. – mtoto