0

テーブルを Figure として保存したいと思います (gridExtra パッケージの「tableGrob」を使用)。これは問題なく動作します。

ただし、それを行う前に、テーブル内のすべての値に「%」記号を追加する必要があります。ただし、シンボルをテーブルに貼り付けると、テーブルがベクトルに変換されます。

my.table <- table(diamonds$cut, diamonds$color)

str(my.table)
'table' int [1:5, 1:7] 163 662 1513 1603 2834 224 933 2400 2337 3903 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:5] "Fair" "Good" "Very Good" "Premium" ...
..$ : chr [1:7] "D" "E" "F" "G" ...

my.table <- format(100*my.table, 2)

          D        E        F        G        H        I        J      
Fair      "16300"  "22400"  "31200"  "31400"  "30300"  "17500"  "11900"
Good      "66200"  "93300"  "90900"  "87100"  "70200"  "52200"  "30700"
Very Good "151300" "240000" "216400" "229900" "182400" "120400" "67800"
Premium   "160300" "233700" "233100" "292400" "236000" "142800" "80800"
Ideal     "283400" "390300" "382600" "488400" "311500" "209300" "89600"

それでも問題ありませんが、次のコマンドでテーブルが破棄されます。

my.table <- paste(my.table, '%')
str(my.table)
"character"

これを回避する方法をご存知ですか?

4

3 に答える 3

2

One thing you could do is simply rebuild the table:

m <- paste(my.table, '%')
matrix(m,5,7,dimnames = dimnames(my.table))

But if, as seems likely, this table is headed towards being output in LaTeX (or something similar) it might make more sense to add the % symbol when converting it to whatever markup language you're using, rather then within the data structure in R.

于 2012-11-16T17:23:49.570 に答える
2

別の方法:

replace(my.table, TRUE, sprintf('%d%%', my.table))

Rは素敵なテーブルを組むことを意図していないという@joranに同意します。

于 2012-11-16T17:54:46.103 に答える
0

属性をコピーして、テーブル フォームを復元できます。

my.table2 <- paste(my.table, '%')
attributes(my.table2) <- attributes(my.table)
my.table <- my.table2

余分な名前を避けたい場合は、読みにくいですが、次のコードでそれを行います。

my.table <- `attributes<-`(paste(my.table, '%'), attributes(my.table))
于 2012-11-17T12:12:50.413 に答える