【问题标题】:indexing/linking rows to a unique identifier将行索引/链接到唯一标识符
【发布时间】:2014-05-12 17:04:52
【问题描述】:

我的数据:

id<-c(1,1,1,1,1,1,1,2,2,2)
start<-c(0,1,3,5,7,8,10,0,0,1)
end<-c(1,3,5,7,8,9,12,0,1,4)
mydata<-data.frame(id,start,end)

问题:

我将使用什么代码来指示第 1-7 行链接到唯一的 id(1),而第 8-10 行链接到 id(2)?输出应如下所示:

Indexes[1:2]
$ '1'
1 2 3 4 5 6 7
$ '2'
8 9 10`

尝试:

我环顾了 StackOverflow,但并没有真正看到这一点。我试过了

split(mydata,mydata$id)

我知道如果我说:

which(mydata$id==1)

它会告诉我第 1-7 行。但不知道如何利用它来获得上面的输出。

但这肯定行不通。

【问题讨论】:

    标签: r function indexing unique


    【解决方案1】:

    你快到了。 split 也可以用于rownames。由于它们将是字符值,因此您可以使用 as.numeric 将它们强制转换为数字

    > Indexes <- split(as.numeric(rownames(mydata)), mydata$id)
    > Indexes[1:2]   ## or just 'Indexes' for your sample data
    ## $`1`
    ## [1] 1 2 3 4 5 6 7
    
    ## $`2`
    ## [1]  8  9 10
    

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 2013-04-13
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 1970-01-01
      • 2017-05-06
      • 2020-09-25
      • 2023-03-10
      相关资源
      最近更新 更多