2010-12-01 10 views
3

Ich habe diesen Code:Steuerung R Ausgang

x <- rnorm(10) 
print(x) 

als Ausgabe zurückkehrt:

[1] -0.67604293 -0.49002147 1.50190943 0.48438935 -0.17091949 0.39868189 
[7] -0.57922386 -0.08172699 -0.82327067 0.07005629 

Ich nehme an, dass R eine Grenze von Zeichen pro Zeile oder etwas mit, und deshalb Aufspaltung das Ergebnis in 2 Zeilen. Ich baue einen Dienst basierend auf dem Ausgang von R.

Was soll ich tun, um es in einer Zeile zu bekommen?

+2

Ich weiß nicht über die Einzelheiten von dem, was Sie versuchen zu tun, aber helfen Optionen ("Breite")? –

+0

Ich denke, Sie können richtig sein. Warum nicht eine Antwort geben, damit ich dich wählen kann? –

Antwort

5

Dann ist es besser, R zu sagen, dass es Dinge auf eine Weise ausgeben soll, die für Ihren Wrapper praktisch ist; überprüfen Sie die String-Funktionen wie paste(), sprintf() und drücken Sie das Ergebnis in Ausgabe mit cat(); zum Beispiel setzen Zahlen in einer Spalte könnte wie folgt aussehen:

x<-rnorm(10) 
cat(paste(x,collapse="\n"),"\n") 

was gerade ausgibt:

0.889105851072202 
0.86920550247321 
0.817785758768382 
-0.0194490361401052 
1.13386492568134 
0.0786139738004322 
0.7431631392675 
0.93881227070957 
0.534225167458455 
1.08265812080696 
+0

nett. Danke vielmals. –

+0

Aber nicht wirklich eine Antwort auf den Q gestellt. Roman's Antwort tut das. Der einzige Grund, warum die gedruckte Ausgabe mehr als eine Zeile umfasst, ist der Wert von 'options (" width ")' ** oder ** die Konsolenbreite, wenn er Optionen ("width") in welcher Schnittstelle zu R Elzo verwendet . –

+0

@Gavin Ich bin mir bewusst, noch das OP erklärte, dass er will, dass es die Übertragung auf das andere Programm zu vereinfachen ... depettifyting prettified output ist immer eine schlechte Idee in diesem Fall, vor allem wenn man leicht prettifier umgehen kann. – mbq

6

Sie können die Druckbreite in R durch Einstellen der options("width") Option einzustellen. Wenn Sie uns mehr Details über Ihr Projekt geben, könnten wir vielleicht besser davon profitieren.

+0

Sie haben es so eingestellt: Optionen (Breite = 150) – Met

2

Danke an alle für ihre Antworten. Ich möchte einen neuen Weg veröffentlichen, der für mich der Beste ist und vielleicht wird jemand anderes diese Referenz brauchen. Da ich einen Webservice aufbaue, werde ich phpSerialize verwenden, um die Ausgabe zu steuern, damit ich unserialize es in PHP kann.

library(phpSerialize) 
x<-rnorm(10) 
x = phpSerialize(x) 
cat(x)