2014-09-28 3 views
6

Wie kann ich eine Array- oder Datenrahmenausgabe in eine Nachricht, eine Warnung oder einen Fehler aufnehmen?Wie wird die Datenrahmenausgabe in Warnungen und Fehler einbezogen?

Standardmäßig wird die Ausgabe um deparse in jeder Spalte reduziert, was nicht sinnvoll ist. Hier ist ein Beispiel, das den Datensatz cars verwendet.

message(cars) 
## c(4, 4, 7, 7, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 20, 22, 23, 24, 24, 24, 24, 25)c(2, 10, 4, 22, 16, 10, 18, 26, 34, 17, 28, 14, 20, 24, 28, 26, 34, 34, 46, 26, 36, 60, 80, 20, 26, 54, 32, 40, 32, 40, 50, 42, 56, 76, 84, 36, 46, 68, 32, 48, 52, 56, 64, 66, 54, 70, 92, 93, 120, 85) 

Antwort

8

Drucken Sie die Ausgabe, wieder einzufangen es capture.output verwenden und kollabieren in einer einzigen Saite durch Zeilenumbrüche getrennt.

print_and_capture <- function(x) 
{ 
    paste(capture.output(print(x)), collapse = "\n") 
} 

message(print_and_capture(cars)) 
## speed dist 
## 1  4 2 
## 2  4 10 
## # etc. 

stop("An error was found in the cars dataset:\n", print_and_capture(cars)) 
## Error: An error was found in the cars dataset: 
## speed dist 
## 1  4 2 
## 2  4 10 
## # etc. 
Verwandte Themen