2017-05-16 13 views
3
# install package for this customized spider chart 
devtools::install_github("ricardo-bion/ggradar", dependencies=TRUE) 

library(ggradar) 
suppressPackageStartupMessages(library(dplyr)) 
library(scales) 

mtcars %>% 
    add_rownames(var = "group") %>% 
    mutate_each(funs(rescale), -group) %>% 
    tail(4) %>% select(1:10) -> mtcars_radar 

これはクモ/ポーラチャート%>%を使用せずに、次のコードを通常の形式でどのように記述しますか?

ggradar(mtcars_radar) #gives you the following spider chart 

enter image description here

+1

'rescale'?カスタマイズされた関数か特定のパッケージの関数ですか? –

+0

基本的に、各関数の最初の引数は前のステップで作成されたデータフレームになります。たとえば、 'df1 < - add_rownames(mtcars、var =" group ")'のようになります。 '%>%'パイプがよりエレガントで読みやすい理由が分かりました。 – neilfws

+0

@AdamQuekはい、それは私が信じているカスタマイズされた機能です。あなたがspider1_radarを実行しようとしたときに編集された –

答えて

4

を作成するためにそれは非常に簡単ですコードです:

mtcars[] <- lapply(mtcars, scales::rescale) 
mtcars$group <- rownames(mtcars) 
rownames(mtcars) <- NULL # not necessary, really 
mtcars_radar <- tail(mtcars, 4)[, c(length(mtcars), 1:9)] # move group to first variable 

mtcars_radar 
#>    group  mpg cyl  disp  hp  drat  wt 
#> 29 Ford Pantera L 0.2297872 1.0 0.6981791 0.7491166 0.6728111 0.4236768 
#> 30 Ferrari Dino 0.3957447 0.5 0.1843352 0.4346290 0.3963134 0.3214012 
#> 31 Maserati Bora 0.1957447 1.0 0.5734597 1.0000000 0.3594470 0.5259524 
#> 32  Volvo 142E 0.4680851 0.0 0.1244699 0.2014134 0.6221198 0.3239581 
#>   qsec vs am 
#> 29 0.00000000 0 1 
#> 30 0.11904762 0 1 
#> 31 0.01190476 0 1 
#> 32 0.48809524 1 1 
+0

を見てください。別の類似したデータセットにあなたのフォーマットを使用したとき、 "tail(spider1,5)[、c(1:7、length(spider1))]のエラー: が間違っています寸法の数 "となる。これで私を助けることができますか? –

+0

'str(spider1)'はどのように見えますか?それはdata.frameですか? – alistaire

+0

> str(spider1) 'table' int [1:5、1:7] 0 0 0 1 0 0 0 1 1 ... - attr(*、 "dimnames")=リスト2 .. $:chr [1:5] "" "Balon/Euron Greyjoy" "Joffrey/Tommen Baratheon" "Robb Stark" ... .. $:chr [1:7] "ビヨンド・ザ・ウォール" "クラウンランド" \ n spider1 =テーブル($ attacking_kingを持って、$ regionを持っています) –

1

%>%は、単にその式/関数の結果を取りますその前に来て、最初のargとして渡しますそれの後の式/関数の表記。したがって、以下は同等です...

library(ggradar) 
library(dplyr) 
library(scales)  

mtcars <- add_rownames(mtcars, var = "group") 
mtcars <- mutate_each(mtcars, funs(rescale), -group) 
mtcars <- tail(mtcars, 4) 
mtcars <- select(mtcars, 1:10) 
mtcars_radar <- mtcars 

ggradar(mtcars_radar) 
関連する問題