2017-05-26 9 views
4

データフレームの構造を表として示すr-markdownのライブラリまたは関数はありますか? str(myDataFrame)の出力に似ていますが、かなりフォーマットされたr-markdownテーブルのようなものはありますか?Rの表としてstr(...)を表示するMarkdown

たとえば、次の出力は、少なくともフィーチャ名とデータ型を保持する列として表示されます。いくつかの値の例はいいかもしれませんが、必須ではありません。

str(mtcars) 
'data.frame': 32 obs. of 11 variables: 
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ... 
$ cyl : num 6 6 4 6 8 6 8 4 4 6 ... 
$ disp: num 160 160 108 258 360 ... 
$ hp : num 110 110 93 110 175 105 245 62 95 123 ... 
$ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ... 
$ wt : num 2.62 2.88 2.32 3.21 3.44 ... 
$ qsec: num 16.5 17 18.6 19.4 17 ... 
$ vs : num 0 0 1 1 0 1 0 1 1 1 ... 
$ am : num 1 1 1 0 0 0 0 0 0 0 ... 
$ gear: num 4 4 4 3 3 3 3 4 4 4 ... 
$ carb: num 4 4 1 1 2 1 4 2 2 4 ... 

答えて

7

strはcatを使用しているため、print to pretty data.frameに変換する方法はありません。しかし、あなたはその機能を模倣して1つを作成し、それをあなたのお気に入りのrmarkdownテーブルフォーマッタ(kable、panderなど)に渡すことができます:

library(knitr) 
library(magrittr) 
data.frame(variable = names(mtcars), 
      classe = sapply(mtcars, typeof), 
      first_values = sapply(mtcars, function(x) paste0(head(x), collapse = ", ")), 
      row.names = NULL) %>% 
    kable() 

|variable |classe |first_values        | 
|:--------|:-------|:----------------------------------------| 
|mpg  |numeric |21, 21, 22.8, 21.4, 18.7, 18.1   | 
|cyl  |numeric |6, 6, 4, 6, 8, 6       | 
|disp  |numeric |160, 160, 108, 258, 360, 225    | 
|hp  |numeric |110, 110, 93, 110, 175, 105    | 
|drat  |numeric |3.9, 3.9, 3.85, 3.08, 3.15, 2.76   | 
|wt  |numeric |2.62, 2.875, 2.32, 3.215, 3.44, 3.46  | 
|qsec  |numeric |16.46, 17.02, 18.61, 19.44, 17.02, 20.22 | 
|vs  |numeric |0, 0, 1, 1, 0, 1       | 
|am  |numeric |1, 1, 1, 0, 0, 0       | 
|gear  |numeric |4, 4, 4, 3, 3, 3       | 
|carb  |numeric |4, 4, 1, 1, 2, 1       | 
+0

ありがとうございます。これは私が探していたものです。私はすでに、これらの様々なライブラリの1つに隠されて便利な機能があることを望んでいましたが、そうは思われません。このコードを実行するために変更しなければならなかったことが1つありました。クラス関数の代わりに、下記のR. Schifiniの答えに示すようにtypeof関数を使用する必要がありました。 –

+0

更新ありがとうございます –

1

これを試してみてください:

m = sapply(mtcars, FUN = function(x) typeof(x)) 

結果:

> m 
    mpg  cyl  disp  hp  drat  wt  qsec  vs  am  gear  carb 
"double" "double" "double" "double" "double" "double" "double" "double" "double" "double" "double" 

またはlapplyと:

m = data.frame(lapply(mtcars,FUN = function(x) typeof(x))) 

結果:

> m 
    mpg cyl disp  hp drat  wt qsec  vs  am gear carb 
1 double double double double double double double double double double double 
+0

ありがとう。これは上記の答えと組み合わせて私にとって完璧に機能します。 –

関連する問題