に基づいて、私は、重複レコードを持ついくつかのデータを持っており、そのうちのいくつかは、(mark
とrecov
は、一度だけband
あたりのあるべきrecap
が数倍存在することができる)があってはなりません。ある列(variable=="mark"
)の特定の値に基づいて一意の観測値(band
)を選択し、残りのデータを"recap"
と"recov"
にします。特定の観測別のを探していたときに個別(dplyr)うまく働いていない - ユニークな観測を基準
uniq <- df %>%group_by(band) %>% distinct(variable=="mark")
私は、それがうまく機能していないことが判明:列variable=="mark"
が、これは私のコードであるとき
私は一意のレコードを選択し、バンドによってグループに、私のデータをdyplr
を使用しましたvariable=="recap"
から値を削除されている(例:band=113749924
において、1993からリキャップ値が欠落している、band=113728509
で同じ場合欠落リキャップ値がある)
これはデータの例である:
終わりstructure(list(band = c(113728501L, 113728502L, 113728503L, 113728504L,
113728505L, 113728505L, 113728506L, 113728506L, 113728507L, 113728508L,
113728509L, 113728509L, 113728509L, 113728509L, 113728510L, 113728510L,
113729709L, 113729709L, 113729709L, 113729710L, 113729711L, 113729712L,
113729713L, 113729714L, 113729715L, 113729716L, 113729717L, 113729718L,
113729719L, 113729720L, 113729720L, 113729721L, 113729722L, 113729723L,
113729724L, 113729725L, 113729726L, 113729727L, 113729728L, 113729729L,
113729730L, 113729731L, 113729732L, 113729733L, 113729733L, 113729733L,
113729734L, 113729735L, 113729735L, 113729735L, 113729914L, 113729914L,
113729914L, 113729914L, 113729915L, 113729916L, 113729917L, 113729918L,
113729919L, 113729920L, 113729921L, 113729922L, 113729923L, 113729924L,
113729925L, 113729926L, 113729927L, 113729928L, 113729929L, 113749923L,
113749924L, 113749924L, 113749924L), variable = structure(c(1L,
1L, 1L, 1L, 1L, 3L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 2L, 1L,
3L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 2L, 1L, 1L, 3L,
2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 3L, 2L), .Label = c("mark", "recap",
"recov"), class = "factor"), year = c(1994L, 1994L, 1994L, 1994L,
1994L, 2012L, 1994L, 1999L, 1994L, 1994L, 1994L, 1994L, 2002L,
2003L, 1994L, 1996L, 1994L, 2002L, 1998L, 1994L, 1994L, 1994L,
1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1995L,
1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L,
1994L, 1994L, 1994L, 1994L, 2002L, 2001L, 1994L, 1994L, 1999L,
1998L, 1994L, 1994L, 1999L, 2005L, 1994L, 1994L, 1994L, 1994L,
1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L,
1994L, 1994L, 1991L, 1991L, 1994L, 1993L)), .Names = c("band",
"variable", "year"), class = "data.frame", row.names = c(NA,
-73L))
私は(113749924のための一例)のようなものを持っているしたいと思います:
band year variable
113749924 1991 mark
113749924 1993 recap
113749924 1994 recov
あなたは間違っているものを見つけるために私を助けるか、多分私に代替コードを提案してくださいもらえますか?
ありがとうございます!
「dput」の出力としてインラインでデータをポストすると、ヘルプを表示するのに最適です。外部リンクは役に立ちません。 – Gopala
あなたの助言に感謝します!私は今日何か新しいことを学びました – MSS
あなたは 'distinct(df)'を試すことができます。あるいは、 'group_by'を使うと、' slice'を使って複製セットの最初の行だけを得ることができます。 – Gopala