2012-09-26 4 views
0

Comment imprimer sans le saut de ligne dans R?Impression sans saut de ligne en R

> for (i in 1:3) 
+ print(i) 
[1] 1 
[1] 2 
[1] 3 

ce que je veux est: 1 2 3, je peux le faire avec chat

> for(i in 1:3) 
+ cat(i," ") 
1 2 3 > 

Comment puis-je faire avec impression?

+2

Pouvez-vous expliquer pourquoi * * vous voulez faire? Par exemple, 'cat' ne gère-t-il pas le type de données que vous voulez imprimer? –

Répondre

1

parce que vous utilisez print, et comment imprimer fonctionnera pour un vecteur atomique. (Le behaiviour de print.default)

Vos options sont à utiliser cat (comme dans votre exemple) ou d'utiliser message avec appendLF == FALSE (Merci à @GSee pour le appendLF = FALSE)

for(i in 1:3)message(i, appendLF = FALSE) 

Comme l'indique GSEE, si vous insister sur l'utilisation print, alors vous devez définir une méthode d'impression pour votre data.type (qui appellera cat ou message ou similaire en arrière-plan)

+1

'? Cat' indique qu'aucun' linefeed' ne signifierait "123" sur la même ligne, pas sur des lignes différentes. Mais, vous êtes proche de 'message' -' pour (i en 1: 3) message (i, appendLF = FALSE) ' – GSee

+0

Oups. J'ai mal compris la question (je pensais que l'OP ne voulait pas le '[1], [2] etc.) Merci pour les heads up – mnel

2

Si vous devez le faire avec print, vous pouvez créer une méthode integer pour print

> print.integer <- function(x, ...) cat(x, " ") 
> for(i in 1:3) print(i) 
1 2 3 > 
Questions connexes