2017-12-14 5 views
5

Ich versuche, das Protokoll einer Steigerung mit sink Funktion, wie folgenden Code zu speichern:Wie kann ich Senke verwenden und trotzdem Nachrichten in R gedruckt bekommen?

require(xgboost) 
require(R.utils) 

data(iris) 
train.model <- model.matrix(Sepal.Length~., iris) 

dtrain <- xgb.DMatrix(data=train.model, label=iris$Sepal.Length) 

xgb_grid = list(eta = 0.05, max_depth = 5, subsample = 0.7, gamma = 0.3, 
    min_child_weight = 1) 

sink("evaluationLog.txt") 
fit_boost <-xgb.cv(data = dtrain, 
        nrounds  = 1000, 
        objective = "reg:linear", 
        eval_metric = "logloss", 
        params = xgb_grid, 
        colsample_bytree = 0.7, 
        early_stopping_rounds = 100, 
        nfold = 5, 
        prediction = TRUE, 
        maximize = FALSE 
       ) 

sink() 

Allerdings kann ich nicht sehen „was passiert“, da es nicht ist die Ausgabe der Druckfunktion und/oder eine Nachricht.

Meine Frage ist, wie kann ich eine .txt Datei mit sink abrufen und sehen, was die Funktion (in diesem Fall wäre xgb.cv) Drucken wäre?

Vielen Dank!

Antwort

6

Verwenden Argument split:

sink('test.txt', split = TRUE) 
print(letters) 
# [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" 
#[18] "r" "s" "t" "u" "v" "w" "x" "y" "z" 
sink() 

Wie Sie oben es beide sehen können, werden auf der Konsole aus und Sie werden auch eine test.txt Datei im aktuellen Verzeichnis finden.

+0

Das ist so offensichtlich! Und perfekt. Vielen Dank!!! – patL

+1

Gern geschehen, froh, dass ich helfen konnte :) – LyzandeR

Verwandte Themen