2017-09-15 75 views
0

R是客户延迟的新手。r中的客户延迟

  • 在数据集中,我有大约30万行15列。有些 相关列是“帐户”,“帐户开立日期”, “出货拿起日期”等

  • 帐户数被重复,而只是想帐号行它在哪里第一次记录,而不是后续行。

    例如, acc#610829952是在第一行以及在第五行,第六行等。我需要单独过滤出第一行,我需要为所有帐号进行此操作。

我不知道该怎么做。有人能帮助我吗?

enter image description here

+2

你有什么已经尝试过?请提供一个可重复的例子。 –

回答

0

有在R一个函数调用duplicated()。它允许您检查是否已记录某个值,如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