Возвращает строки фрейма данных, которые соответствуют нескольким критериям в R (случайная выборка данных панели) - PullRequest
0 голосов
/ 09 ноября 2011

Я надеюсь создать случайную выборку из данных панели на основе уникального идентификатора.

Например, если вы начинаете с:

e = data.frame(id=c(1,1,1,2,2,3,3,3,4,4,4,4), data=c(23,34,45,1,23,45,6,2,9,39,21,1))

И вам нужна случайная выборка 2уникальные идентификаторы:

out = data.frame(id=c(1,1,1,3,3,3), data=c(23,34,45,45,6,2))

Хотя образец дает мне случайные уникальные идентификаторы

sample( e$id ,2)    # give c(1,3)

Я не могу понять, как использовать логические вызовы для возврата всех желаемых данных.Я пробовал несколько вещей, в том числе:

e[ e$id == sample( e$id ,2) ]   # only returns 1/2 the data

Любые идеи ???Это убивает меня.

1 Ответ

3 голосов
/ 09 ноября 2011

Я не совсем уверен, каким должен быть ваш ожидаемый результат, но работает ли это для того, что вы пытаетесь сделать?

> e[e$id %in% sample(e$id, 2), ]
   id data
6   3   45
7   3    6
8   3    2
9   4    9
10  4   39
11  4   21
12  4    1

Или, может быть, вы хотите это:

> e[e$id %in% sample(unique(e$id), 2), ]
   id data
1   1   23
2   1   34
3   1   45
9   4    9
10  4   39
11  4   21
12  4    1
...