我的数据:
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
答案 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