2014-05-12 99 views
0

我的数据:索引/联行的唯一标识符

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

你是几乎没有。 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 
+0

谢谢理查德:-) – user3497385