2017-01-14 4 views
-1

私の出力をテーブルとしてmarkdownに表示したいのですが、kableを使用して出力をスタイリングしたかったのです。サプリーの結果からテーブルを印刷するのに `kable`を使用したい

だから、これは私がaコンソールで次のようになり

a <- sapply(storm[,c("evtype", "fatalities", "injuries", "propdmg","cropdmg")], function(x) table(is.na(x))) 

として保存したものです:

a 
    evtype.FALSE fatalities.FALSE injuries.FALSE propdmg.FALSE 
      902297   902297   902297   902297 
    cropdmg.FALSE 
      902297 

推測私はどのように私はkable(x)を使用することができます名前を変更したくありません。私は、xが行列またはデータフレームであることを持っていることを読んで、as.data.frameを試してみましたが、ここでは出力が

kable(as.data.frame(a)) 
[1] "|     |  a|" "|:----------------|------:|" 
[3] "|evtype.FALSE  | 902297|" "|fatalities.FALSE | 902297|" 
[5] "|injuries.FALSE | 902297|" "|propdmg.FALSE | 902297|" 
[7] "|cropdmg.FALSE | 902297|" 
attr(,"format") 
. 
. 

のように見えたものです私はまたncol=5, byrow =Fのような引数を試してみました「」エントリ として来ていることを確認します私はこの時点で進んでいくつもりであり、このことについてどのように考えるかについての指針を得ることを望んでいました。ありがとう

+2

何をお探しですか?結果はあなたが望むものではないのですか?横向きの配置が必要な場合は、データをそのように見えるようにします。 'knitr :: kable(data.frame(lapply(mtcars、mean)))' – alistaire

+0

これは私が実際に探していた答えです。私は 'lapply'からの出力がそのトリックをすることに気付かなかった。 – Bhail

+0

'lapply'水平出力、' sapply' vertical .. yeah – Bhail

答えて

1

kable(a)とする必要があります。

> a <- sapply(iris, function(x) table(is.na(x), useNA = "always")) 
> kable(a) 


|  | Sepal.Length| Sepal.Width| Petal.Length| Petal.Width| Species| 
|:-----|------------:|-----------:|------------:|-----------:|-------:| 
|FALSE |   150|   150|   150|   150|  150| 
|NA |   0|   0|   0|   0|  0| 

はまた、あなたはおそらくtable()にuseNA = FALSE引数をしたいか、他あなたの単一の無名の行は少し混乱していることに注意してください。

+0

あなたの出力をありがとう、 'useNA'私はそれを試してみましょう。 – Bhail

1

あなたの問題を再現することはできません(私自身のデータであっても、自分の投稿していないので)。しかし、これは私が見ることができるものです:

out <- sapply(split(iris, iris$Species), function(a) table(is.na(a))) 
out 
#  setosa.FALSE versicolor.FALSE virginica.FALSE 
#    250    250    250 

library(knitr) 
kable(as.data.frame(out)) 
# |     | out| 
# |:----------------|---:| 
# |setosa.FALSE  | 250| 
# |versicolor.FALSE | 250| 
# |virginica.FALSE | 250| 

これは文字列としてではなく、ラテックステーブルとしてフォーマットされています。しかし、おそらくあなたが設定したオプションや、あなたが私たちに示していないものがあります。しかし

、いくつかのオプション:(行名以上のヘッダを固定)

kable(data.frame(Species = names(out), Rows = unlist(out)), row.names = FALSE) 
# |Species   | Rows| 
# |:----------------|----:| 
# |setosa.FALSE  | 250| 
# |versicolor.FALSE | 250| 
# |virginica.FALSE | 250| 

代わり:

data.frame(Species = names(out), Rows = unlist(out)) %>% 
    spread(Species, Rows) %>% 
    kable() 
# | setosa.FALSE| versicolor.FALSE| virginica.FALSE| 
# |------------:|----------------:|---------------:| 
# |   250|    250|    250| 

私は、一般的に使用したいだろうと、しかし、信じています元のラベル(例:setosa)ではなく、setosa.FALSEです。それにかかわらず、これらがあなたのニーズに合わない場合は、期待される結果を明確にしてください。

+0

ごめんなさい。努力してくれてありがとう、あなたのアイデアを試してみましょう。 – Bhail

+0

これはLaTeXではなくMarkdownです。 – alistaire

+0

その意図ではありませんでしたか? – r2evans

関連する問題