私は2つの条件に応じてサブセットしたいR内にdata.frameを持っています:まず、行は重複してはならず、重複する場合はb == 1返される必要があります。予想される5行の代わりに、このサンプルdfの7行すべてが返されます。原因は何ですか?ループ内の2つの条件でサブセット化
編集:Sry、ループは実際に動作します。私はまだこれを最適化することができますどのように質問の2番目の部分は回答する..ですdf$b
で[i]
を忘れてしまった;)
a <- c(rep("A", 2), "B", rep("C",2), "D", "E")
b <- c("ws_12","dr_12","ws_12","ws_12","dr_12","ws_12","dr_12")
df <- data.frame(a,b)
result <- data.frame()
for (i in seq_along(df$a)) {
if (duplicated2(df$a)[i] == FALSE) {
result <- rbind(result, df[i,])
} else if (duplicated2(df$a)[i] == TRUE && substring(df$b,1,2)[i] == "ws") {
result <- rbind(result, df[i,])
}
}
私はプログラミングやRへの新たなんだと、おそらくいくつかの基本的な事があります私は間違っている。これは簡単な方法でもできますか?
'のDF [!重複(DFます$ a)は、]' – Sotos
@Sotos我々は実行する前に、B' 'に注文する必要があるかもしれませんが、重複を削除することができます'b'が発注されていない場合のあなたのコード。 – zx8754