2016-09-14 3 views
0

Я пытаюсь ввести десятичное число с ведущими пробелами, используя функцию sprintf.R: sprintf для ввода десятичного числа с ведущими пробелами

Например, я хотел бы преобразовать следующий вектор:

a <- c(1, 1.123, -1.123, 123) 
[1] 1.000 1.123 -1.123 123.000 

к (дополнения = 4):

[1] " 1.00" " 1.12" " -1.12" " 123.00" 

Я попытался с sprintf("% 4.2f", a), но он производит следующий результат:

[1] " 1.00" " 1.12" "-1.12" " 123.00" 

Редактировать:

Я знаю, что он работает с целыми числами, то есть sprintf("%4d", 123) будет производить " 123", но я не могу заставить его работать с плавающими числами.

+0

код, который вы отправили, не дает результата, который вы предъявляете ... –

+0

@CyrusMohammadian Я отредактировал мое оригинальное сообщение, чтобы исправить код. – mat

+1

ОК, он работает, но другие проблемы сохраняются, R не будет печатать этот результат по вертикали с кодом, который вы предоставили ... Я предполагаю, что это не проблема для вас? –

ответ

2

Использование %7.2f. 7 символов, 2 справа от десятичной.

sprintf("%7.2f", a) 
# [1] " 1.00" " 1.12" " -1.12" " 123.00" 

Спасибо за подсказку с @Jota, мы удалили пробел перед 7.2f.