私はデータの整理/整理の最終段階にあり、この手順の提案をいただければ幸いです。私はRが新しく、データフレームやその他のデータ型の仕組みを完全に理解していません。 (私は勉強しようとしていますが、すばらしい解決策が必要なためにプロジェクトを持っています)。私はCSVファイルからデータをインポートしました。rの同一インスタンスを1つにグループ化して同時に、頻度と平均の統計を生成する方法はありますか?
同じ(日付、ID1、ID2、ID3)のインスタンスをグループ化するとします。出力のすべての統計の平均と、グループ化されたインスタンスの数を含む新しい列が必要です。
注:ID3には以下が含まれます。
In `[<-.factor`(`*tmp*`, is.na(tdata[["ID3"]]), value = c(3L, 3L, :
invalid factor level, NA generated
データは次のとおりです:
date ID1 ID2 ID3 stat1 stat2 stat.3
1 12-03-07 abc123 wxy456 pqr123 10 20 30
2 12-03-07 abc123 wxy456 pqr123 20 40 60
3 10-04-07 bcd456 wxy456 hgf356 10 20 40
4 12-03-07 abc123 wxy456 pqr123 30 60 90
5 5-09-07 spa234 int345 <NA> 40 50 70
所望の出力 をグループ化する前に、私は解決策
tdata$ID3[is.na(tdata$ID3)] <- "NA"
tdata[["ID3"]][is.na(tdata[["ID3"]])] <- "NA"
を試してみましたが、エラーを取得してきた私は、 "NA" にこれらの名前を変更したいのですが
date ID1, ID2, ID3, n, stat1, stat2, stat 3
12-03-07 abc123, wxy456, pqr457, 3, 20, 40, 60
10-04-07 bcd456, wxy456, hgf356, 1, 10, 20, 40
05-09-07 spa234, int345, big234, 1 , 40, 50, 70
私はこの解決策を試しました:How to merge multiple data.frames and sum and average columns at the same time in R
しかし、グループ化して類似性をテストする必要がある列をマージできませんでした。
DF <- merge(tdata$date, tdata$ID1, tdata$ID2, tdata$ID3, by = "Name", all = T)
Error in fix.by(by.x, x) : 'by' must specify uniquely valid columns
最後に、n列を生成する。おそらく1の行を挿入し、要約しながら列の合計を使用しますか?
希望する出力の最初の行を確認してください。期待平均は異なる – akrun
私の悪い、はい、それは12-03-07 abc123、wxy456、pqr457、3、20、40、60 – MyLeftS0ck