2013-07-24 2 views
0

У меня есть data.frame вроде этого:Как получить индекс блока данных в data.frame?

a b 
1 1 2 
2 1 3 
3 2 3 
4 2 5 

Это отсортированный по a и мне нужны показатели различных a-х гг. Теперь я использую цикл, но это не изящно.

+2

что выход вы ищете в этом примере? – haki

+1

http://stackoverflow.com/questions/5140222/is-there-any-way-to-bind-data-to-data-frame-by-some-index?rq=1 – nKandel

+0

Производит ли дублируемая работа, т.е. (! дублируется (х $ а)) – jimmyb

ответ

2

Попробуйте следующее:

# this will give you the row indices 
lapply(unique(dat$a), function(a) which(dat$a==a)) 

Если вы хотите, чтобы ваши результаты будут названы, использование:

U <- unique(dat$a) 
names(U) <- U 
lapply(U, function(a) which(dat$a==a)) 

# Produces: 
# $`1` 
# [1] 1 2 
# 
# $`2` 
# [1] 3 4 
Смежные вопросы