2016-09-14 6 views
0

sprintf関数を使用して先行する空白で10進数を塗りつぶそうとしています。私はsprintf("% 4.2f", a)と試みたが、それは次の結果生成R:sprintfが先頭の空白で十進数を塗りつぶす

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

をする(パディング= 4)

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

例えば、私は、次のベクトルを変換したいです

[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の前にスペースを削除しました。

関連する問題