後続のインスタンスを維持:、私は次のことを実行している場合ことを知っているRでの一致を使用して、私は、データフレーム持って
target <- c('b', 'a', 'd', 'c')
new_df <- df[match(target, df$name), ]
を:
df <- data.frame(name = c('a', 'b', 'c', 'd', 'a', 'b', 'a'), value = c(rep(TRUE, 4), rep(FALSE, 3)))
とターゲットを
df
をターゲットの順に返しますが、最初のインスタンスのみを返します。サンプルデータでは、後で「a」と「b」のインスタンスがdf$name
にあります。どうすればそれらを保存できますか?私は彼らがどこに生まれても、彼らが残っているということだけは気にしない。任意の名前の最初のインスタンスはターゲットの順番でなければなりません( 'a'は 'd'または 'c'の前に現れなければなりません)。しかしその後は気にしません。
私はコードでそれを得ることができないので、私はそれが表示されませんでしたあなたの期待出力 – akrun
は何ですか。しかし、 'a'、 'c'、または 'd'のいずれのインスタンスよりも前に 'b'が表示されている限り、出力まで順応することなく柔軟に対応できます。そして 'a'は 'c'と 'd'の前に現れます。そして 'd'は 'c'の前に現れます。この場合、 'b、b、a、a、a、d、c'または 'b、a、d、b、a、a、c'となります。最初のインスタンスがターゲットの順番になっている限り、私は気にしません。 – jwells