将行索引/链接到唯一标识符

时间:2014-05-12 17:04:52

标签: r function indexing unique which

我的数据:

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行。但是我不知道如何利用这个来获得上面的输出。

但这肯定不起作用。我真的已经考虑过了,但作为第一次尝试,我们不能提出一些不错的代码,你必须请原谅我。

亲切的问候 d

1 个答案:

答案 0 :(得分:0)

你快到了。 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