【问题标题】:indexing duplicated cases of a data frame in R [duplicate]在R中索引数据框的重复案例[重复]
【发布时间】:2015-12-15 17:57:31
【问题描述】:

要创建报告,我必须重新排列我的 data.frame。

它是:

     id       date  kind datn 
AE00049 1999-03-01 train    2 
AE00049 1999-03-01   bus    2 
AE00049 2009-05-01 train    1 
AE00052 1997-07-15   bus    1 
AE00066 2005-09-01  tram    1 
AE0007X 2009-07-01   bus    2 
AE0007X 2009-07-01 train    2 
AE00186 2002-11-01   bus    3 
AE00186 2002-11-01 train    3 
AE00186 2002-11-01  tram    3 

我的目标是为具有相同 ID 和日期的行提供一个新的索引号,如下所示:

     id      date  kind datn datnno
AE00049 1999-03-01 train    2      1
AE00049 1999-03-01   bus    2      2
AE00049 2009-05-01 train    1      1
AE00052 1997-07-15   bus    1      1
AE00066 2005-09-01  tram    1      1
AE0007X 2009-07-01   bus    2      1
AE0007X 2009-07-01 train    2      2
AE00186 2002-11-01   bus    3      1
AE00186 2002-11-01 train    3      2
AE00186 2002-11-01  tram    3      3

我该怎么做?

【问题讨论】:

  • 新的答案是更多的代码节省。

标签: r indexing dataframe multiple-columns


【解决方案1】:

我们可以使用ave创建一个序列列,使用'id'和'date'作为分组变量。

 df1$datnno <- with(df1, ave(seq_along(id), id, date, FUN=seq_along))

【讨论】:

  • 谢谢!我试过“ave”,但没有用“with”。 “With”似乎也有助于解决其他问题。最美好的祝愿!
  • 我已经完成了对勾的点击。感谢您的提示!
  • 我还有一个问题:代码似乎无法与 NA 一起工作。如何在此代码中删除 NA?
  • @VolkerHolzendorf 这些 NA 是在“日期”列还是在“ID”列中?是否要在继续此操作之前删除 NAs 行?
猜你喜欢
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 2016-09-16
  • 2015-09-08
  • 1970-01-01
  • 2010-12-04
相关资源
最近更新 更多