ネストされたリストの各レコードの回帰直線をプロットする

クレイ

データをリストにネストし、線形モデルをリストの各ティブルに追加し、回帰係数をリストの各レコードに追加し、2つの異なるggplotオブジェクトをリストの各レコードに追加する例があります。レコードごとに別々の図に回帰直線をプロットしたいと思います。geom_smoothに私が求めていることを正確に実行させることができますが、geom_ablineは、リスト内の各レコードに1つの図ごとに回帰を追加するように見えます(私の例には3つのレコードがあるため、各図に3行で、記録。

library(tidyverse)
library(purrr)
library(broom)
library(ggplot2)

iris_species <- iris %>%  
  group_by(Species) %>%  
  nest()

# build model functions
model <- function(iris) {
  lm(Sepal.Length ~ Sepal.Width, data = iris)
}

# map models to the tibble
iris_species <- iris_species %>% 
  mutate(model = map(data, model))

iris_species # look at the structure

# add glance and tidy results to list
iris_species <- iris_species %>% 
  mutate(t = map(model, tidy)
         )

# unnest tidy list
iris_species_g <- iris_species %>% 
  unnest(t) %>% 
  select(Species, term, estimate) %>% 
  spread(key = term, value = estimate) %>%
  select(Species, `(Intercept)`, Sepal.Width) 

# pain down a list for species and data
iris_species_list <- iris_species %>% 
  select(Species, data, model)

# join  
iris_species_coeffs <- left_join(iris_species_list, iris_species_g, by = 'Species')

# add figures to list
iris_species_figs <- iris_species_coeffs %>% 
  mutate(plot1 = map(data, ~ ggplot(., aes(x = Sepal.Width, y = Sepal.Length)) +
                       geom_point() + 
                       geom_smooth(se = TRUE, size = 1, color = 'grey')
                     ) 
         ) 

iris_species_figs <- iris_species_figs %>% 
  mutate(plot2 = map(data, ~ ggplot(., aes(x = Sepal.Width, y = Sepal.Length)) +
                      geom_point() +
                      geom_abline(intercept = `(Intercept)`, slope = Sepal.Width, color = 'blue')
                    )
         ) 

iris_species_figs

# make figures
iris_species_figs$plot1 # works as expected

iris_species_figs$plot2 # does not

上記のコードの最終製品は次のとおりです。

# A tibble: 3 x 7
  Species    data              model    `(Intercept)` Sepal.Width plot1    plot2   
  <fct>      <list>            <list>           <dbl>       <dbl> <list>   <list>  
1 setosa     <tibble [50 × 4]> <S3: lm>          2.64       0.690 <S3: gg> <S3: gg>
2 versicolor <tibble [50 × 4]> <S3: lm>          3.54       0.865 <S3: gg> <S3: gg>
3 virginica  <tibble [50 × 4]> <S3: lm>          3.91       0.902 <S3: gg> <S3: gg>

最後の2行を実行すると、問題が発生します。plot1のgeom_smoothコードは、各レコードのデータを使用して各レコードに1つの図を作成し、各図に平滑化線を適用します。ただし、plot2のgoem_ablineはそうではありません。3つの図のそれぞれに3本の線すべて(各レコードから1本)をプロットしているように見えます。goem_ablineをgeom_smoothのように動作させる方法に関する提案は大いに評価されます。

AntoniosK

mapあなたが使用している機能は、plot 2ONLYマッピングしているdataと切片と傾きのためには、3つの要素のベクトルを見ています。そのため、各プロットに3本の線が表示されます。

あなたは使用する必要がありますpmapするために、mapあなたは、各プロットのために使用する必要があるすべての情報/列。

これを試して:

iris_species_figs <- iris_species_figs %>% 
  mutate(plot2 = pmap(list(data,`(Intercept)`,Sepal.Width), 
                      function(a,b,c) ggplot(a, aes(x = Sepal.Width, y = Sepal.Length)) +
                       geom_point() +
                       geom_abline(intercept = b, slope = c, color = 'blue')
  )
  ) 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

二重にネストされたラップで複数の回帰直線に色を追加する

分類Dev

同じプロットにシミュレートされた回帰直線をプロットする

分類Dev

計算の線形回帰直線をプロットする

分類Dev

プロットされた行列に回帰直線を追加する

分類Dev

「[Errno10048] Pythonソケットを閉じて再度開いた後、通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます」

分類Dev

プロットの回帰直線を延長する方法は?

分類Dev

「ペア」関数を使用して作成されたプロットの上に線形回帰直線をプロットする方法

分類Dev

Windows TCP / IPリスナーサービス「通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます」

分類Dev

xの各値のyの条件付き分布に回帰直線をプロットする

分類Dev

ExchangeServiceでこのエラーが発生しました通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の1回の使用のみが許可されていますXX.XXX.XXX.XXX:443

分類Dev

散布図の各点のセットに線形回帰直線を追加するためにablineを使用する場合のコーディングエラー

分類Dev

散布図の各点のセットに線形回帰直線を追加するためにablineを使用する場合のコーディングエラー

分類Dev

R:プロットに複数の回帰直線とレスカーブを追加

分類Dev

Rのggplot2ドットプロットに線形回帰直線を追加する

分類Dev

ggplotで複数の線形回帰直線をプロットする

分類Dev

c#udpソケット通信-通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます

分類Dev

ネストされたタグ内の各タグの最初の要素をn回ターゲットにする

分類Dev

ネストされたループは、Node.jsの各レコードを続編します

分類Dev

HttpClient:通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます

分類Dev

(OS 10048)通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されています。WindowsApache

分類Dev

RestSharp応答通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます

分類Dev

通常、c#では各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されています。

分類Dev

rails-ネストされたリソースルートのネストされたコントローラーをターゲットにする方法

分類Dev

Rの重回帰から「回帰直線」をプロットします

分類Dev

プロローグのネストされたリストの末尾再帰

分類Dev

ネストされたデータフレーム/ tibbleから複数の単純な線形回帰を実行する

分類Dev

ggplotに1000の回帰直線を追加する最良の方法は何ですか?(モデルベースのブートストラップ)

分類Dev

プロット:観測値と回帰直線の間に線がある回帰誤差を表示するにはどうすればよいですか?

分類Dev

実際のデータを含むプロットに回帰直線を追加する

Related 関連記事

  1. 1

    二重にネストされたラップで複数の回帰直線に色を追加する

  2. 2

    同じプロットにシミュレートされた回帰直線をプロットする

  3. 3

    計算の線形回帰直線をプロットする

  4. 4

    プロットされた行列に回帰直線を追加する

  5. 5

    「[Errno10048] Pythonソケットを閉じて再度開いた後、通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます」

  6. 6

    プロットの回帰直線を延長する方法は?

  7. 7

    「ペア」関数を使用して作成されたプロットの上に線形回帰直線をプロットする方法

  8. 8

    Windows TCP / IPリスナーサービス「通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます」

  9. 9

    xの各値のyの条件付き分布に回帰直線をプロットする

  10. 10

    ExchangeServiceでこのエラーが発生しました通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の1回の使用のみが許可されていますXX.XXX.XXX.XXX:443

  11. 11

    散布図の各点のセットに線形回帰直線を追加するためにablineを使用する場合のコーディングエラー

  12. 12

    散布図の各点のセットに線形回帰直線を追加するためにablineを使用する場合のコーディングエラー

  13. 13

    R:プロットに複数の回帰直線とレスカーブを追加

  14. 14

    Rのggplot2ドットプロットに線形回帰直線を追加する

  15. 15

    ggplotで複数の線形回帰直線をプロットする

  16. 16

    c#udpソケット通信-通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます

  17. 17

    ネストされたタグ内の各タグの最初の要素をn回ターゲットにする

  18. 18

    ネストされたループは、Node.jsの各レコードを続編します

  19. 19

    HttpClient:通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます

  20. 20

    (OS 10048)通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されています。WindowsApache

  21. 21

    RestSharp応答通常、各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されます

  22. 22

    通常、c#では各ソケットアドレス(プロトコル/ネットワークアドレス/ポート)の使用は1回のみ許可されています。

  23. 23

    rails-ネストされたリソースルートのネストされたコントローラーをターゲットにする方法

  24. 24

    Rの重回帰から「回帰直線」をプロットします

  25. 25

    プロローグのネストされたリストの末尾再帰

  26. 26

    ネストされたデータフレーム/ tibbleから複数の単純な線形回帰を実行する

  27. 27

    ggplotに1000の回帰直線を追加する最良の方法は何ですか?(モデルベースのブートストラップ)

  28. 28

    プロット:観測値と回帰直線の間に線がある回帰誤差を表示するにはどうすればよいですか?

  29. 29

    実際のデータを含むプロットに回帰直線を追加する

ホットタグ

アーカイブ