tidyr
をR
から使用しています。重複した識別子でspread()
コマンドを使用しているときに問題が発生しています。ここでtidyrで重複している識別子エラー
は、問題を示しモック例です。私は、このコマンドを実行すると
X = data.frame(name=c("Eric","Bob","Mark","Bob","Bob","Mark","Eric","Bob","Mark"),
metric=c("height","height","height","weight","weight","weight","grade","grade","grade"),
values=c(6,5,4,120,118,180,"A","B","C"),
stringsAsFactors=FALSE)
tidyr::spread(X,metric,values)
は、だから私は、次のエラーを取得する:ボブなので、
Error: Duplicate identifiers for rows (4, 5)
なぜそのエラー理にかなっています重量について2回記録した。ボブは彼の体重を2度記録していたので、実際には間違いではありません。私は、コマンドを実行しているされて行うことができるようにしたいと思い、それはそれは次のように私をお返ししています
name height weight grade
Eric 6 NA A
Bob 5 120 B
Bob 5 118 B
Mark 4 180 C
は、私はこれを達成するために使用されなければならないコマンドを広めていませんか?簡単な解決法がない場合は、spread()
コマンドを実行するときに重複の少ない重量でレコードを削除する簡単な方法はありますか?
あなたは 'グループ化を経由して、物事を削除することができます – RustyStatistician
最小値を持つものを取り除くだけで言うのは簡単な方法はあります各「名前」/「メトリック」の組み合わせの最大値のみを選択します。 – aosmith
あなたは(この 'X%>%(メトリック名) GROUP_BY%>% 変異(行= ROW_NUMBER()、 少なくとも=分(行))%>% 広がりと最小値を削除することができ%)% フィル(等級、高さ)%>% フィルター(行==少なくとも)%>% select(-row、-least) '' ' –