データポイントを回答者のグループの平均に接続するrを使用して単純な折れ線グラフを作成しようとしています(また、それらをラベル付けしたり、異なる色で区別したりすることもできます)。私のデータは長い形式で、このようにソートされています(私はそれが任意の値の場合は、ワイド形式でもあります):
ID gender week class motivation
1 male 0 1 100
1 male 6 1 120
1 male 10 1 130
...
2 female 0 1 90
2 female 6 1 NA
2 female 10 1 117
...
3 male 0 2 89
3 male 6 2 112
3 male 10 2 NA
...
基本的に、すべての回答者は合計 n 回測定され、機会 (週) は全員で同じでした。一部の回答者は、1 回以上欠席していました。モチベーションのために言いましょう。性別、クラス、ID などの変数は変わりませんが、モチベーションは変わります。ggplot2 で折れ線グラフを取得してみた
## define base for the graphs and store in object 'p'
plot <- ggplot(data = DataRlong, aes(x = week, y = motivation, group = gender))
plot + geom_line()
グループ化変数として、たとえばクラスや性別を使用したいと考えています。ただし、私のアプローチでは、グループごとの平均を結ぶ線は得られません。また、測定機会ごとに縦線も取得します。これは何を意味するのでしょうか?これを修正する唯一の方法は、新しい変数 average.motivation を作成し、機会ごとにすべてのグループの平均を計算し、この平均をグループのすべてのメンバーに割り当てることです。ただし、これは、別の要因に基づいてグループ ラインを表示する場合に、すべてのグループ変数に対してこれを行う必要があることを意味します。また、プロットは欠損データをどのように処理しますか? (グループのメンバーの 1 人に欠損値がある場合でも、そのグループの機会全体を省略するのではなく、この機会のグループ平均でポイントを計算したいと考えています)。
編集:ありがとう、dplyr を使用したソリューションは、すべてのカテゴリ変数に対してうまく機能します。現在、2 番目または 3 番目の要素に基づいて線を色付けすることで、サブグループを区別する方法を見つけようとしています。たとえば、「class2」のグループに対して 20 の線をプロットしますが、それらすべてを 20 の異なる色で表示するのではなく、同じタイプのクラス (「class_type」) に属している場合は、同じ色を使用したいと考えています。 、例えば、A、B または C = 20 行、色の 3 つのグループ)。
「mean_data2」に 2 番目の要素を追加しました。それはうまくいきます。次に、ggplot で color 引数を変更しようとしましたが (geom_line の場合も試しました)、20 行もありません。
mean_data2 <- group_by(DataRlong, class2, class_type, occ)%>% summarise(procras = mean(procras, na.rm = TRUE))
ライブラリ(ggplot2) ggplot(na.omit(mean_data2), aes(x = occ, y = procras, color=class2)) + geom_point() + geom_line(aes(colour=class_type))