2017-09-15 14 views
0

です。お客様の待ち時間は、

  • データセットには、約30万の行と15の列があります。いくつかの 関連の列が

  • 口座番号を繰り返し、それがどこにあるかだけで口座番号を持つ行をしたいされ、 「出荷拾う日付」など「アカウントオープン日」「アカウント」です後続の行ではなく、最初に記録されます。

    たとえば、 acc#610829952は、第1行だけでなく、第5行、第6行などにあります。私は最初の行を単独でフィルタリングする必要があり、私はすべての口座番号に対してこれを行う必要があります。

私はこれを行う方法がわかりません。誰かがこれで私を助けてくれますか?

enter image description here

+2

?再現可能な例を提供してください。 –

答えて

0

duplicated()呼ばR内の関数があります。 accountのような特定の値が既に記録されているかどうかを確認することができます。

まず、duplicated()を使用する前に、該当する列accountに既に口座番号が表示されていることを確認します。 TRUE/FALSEベクトル(TRUE)が表示され、対応する値がすでに表示されていることを示します。その情報を使用して、あなただけのためにあなたのdata.frameインデックスは、興味のある行を取得します私はあなたのデータは以下のdfのように見えるあなたが持っていると仮定します:あなたはすでに試してみました何

df <- data.frame(segment = sample(LETTERS, 20, replace = TRUE), 
       account = sample(1:5, 20, replace = TRUE)) 
#  account segment 
# 1  3  N 
# 2  2  V 
# 3  4  T 
# 4  4  Y 
# 5  4  M 
# 6  4  E 
# 7  5  H 
# 8  3  A 
# 9  3  J 
# 10  3  Y 
# 11  4  R 
# 12  5  O 
# 13  4  O 
# 14  1  R 
# 15  5  U 
# 16  2  Q 
# 17  5  F 
# 18  2  J 
# 19  4  E 
# 20  2  H 

inds <- duplicated(df$account) 
# [1] FALSE FALSE FALSE TRUE TRUE TRUE FALSE TRUE TRUE TRUE 
# [11] TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE 
df <- df[!inds, ] 
#  account segment 
# 1  3  N 
# 2  2  V 
# 3  4  T 
# 7  5  H 
# 14  1  R 
関連する問題