私は別のプログラムで使用するためにカスタムファッションでいくつかのデータを印刷するためにRを使用しようとしています。それは私の数字を左パッドにしようとし続け、私はそれを止めることはできません。私は形式、印刷物、猫、などで何かを見つけることができませんでした。私の問題を解決するまた、固定幅や可変幅を検索すると、多少異なる問題を解決しようとする人々(そして、パディングのスタイルを変更する - それを削除するのではなく)が求められます。Rでapply + catを使用して可変幅の結果を得る方法
には、以下のデータセットアップしてください:
> df.play <- data.frame(name = c('a','b','c'), value = c(1,11,111))
> df.play
name value
1 a 1
2 b 11
3 c 111
これは私が明示的に(好ましくは外部ライブラリを避けて)ループせずに、この出力フォーマットを取得するにはどうすればよい私の所望の出力
#Goal
> for (j in seq(nrow(df.play))) {cat(as.character(df.play[j,1]),'.',df.play[j,2],'\n',sep='')}
a.1
b.11
c.111
のですか?
#Naive Attempt 1
# Why does it left pad the second "column"?
# How do I get it to stop?
# Why does cat even parse it as a column to begin with?
junk<-apply(df.play,1,function(x) cat(x[1],'.',x[2],'\n',sep=''))
a. 1
b. 11
c.111
#Naive Attempt 2
# Perhaps this will help provide some insight.
# The number is a string before it gets to cat. Why?
t<-apply(df.play,1,function(x) cat(x[1],'.',sprintf('%d',x[2]),'\n',sep=''))
Error in sprintf("%d", x[2]) :
invalid format '%d'; use format %s for character objects