【问题标题】:Get row index in repetitive values in Data Frame获取数据框中重复值的行索引
【发布时间】:2019-08-14 21:52:32
【问题描述】:

我有一个大型数据集(50 000 行),其中的数据类似于:

CODE        sYS     YEAR  MONTH VAR STATION
00000539    BREAK   1998    12   n  HUAYAN
00000539    BREAK   2003    12   n  HUAYAN
00000539    BREAK   2008    12   n  HUAYAN
00000539    BREAK   2009    12   n  HUAYAN
00000539    BREAK   2015    12   n  HUAYAN
00000543    BREAK   1992    12   n  NANA
00000543    BREAK   2008    12   n  NANA
00000543    BREAK   2010    12   n  NANA
00000638    BREAK   1971    12   n  PACARAN
00000638    BREAK   1973    12   n  PACARAN
00000638    BREAK   1997    12   n  PACARAN
00000727    BREAK   1973    12   n  COPARA
00000727    BREAK   1995    12   n  COPARA
00000727    BREAK   1997    12   n  COPARA
00000727    BREAK   1998    12   n  COPARA

我想要的是获取特定年份的行索引,例如

x <- c(1973, 1998, 2008)

我试过了:

> row_index <- match(x, DataSet$Year)
> print(row_index)
> 10 1 3

正如你所看到的“match()”我只得到第一个值而不是全部,因为我期望我喜欢这样:

> 10 12 1 15 3 7

任何建议或帮助。谢谢。

【问题讨论】:

  • 也许是库(data.table); setDT(Dataset)[YEAR %in% x, which=TRUE]

标签: r indexing data.table row


【解决方案1】:
> with(DataSet, YEAR[duplicated(YEAR) & duplicated(STATION)])
[1] 2008 1997 1998

【讨论】:

    【解决方案2】:

    which 怎么样-

    row_index <- which(DataSet$Year %in% x)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-12
      • 2015-09-08
      • 2020-08-13
      • 2021-09-18
      • 2018-06-30
      • 1970-01-01
      • 2019-02-16
      • 2021-01-19
      相关资源
      最近更新 更多