2016-07-19 6 views
0

Мой набор данных выглядит как (назовем его data_xy)R кодирование: самозагрузки набора данных с повторными измерениями

id X Y 
1 5 10 
1 6 11 
1 4 8 
2 3 9 
2 3 12 
3 4 10 
... 

наблюдений из общего числа N ид. Каждый идентификатор имеет несколько рядов измерений.

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

b_idx <- sample.int(N,N,T) 

вполне вероятно, что

b_idx=c(1,1,3,4,4,4....) 

Тогда как создать образец самозагрузки с b_idx? Если я

data_xy[data_xy$id==b_idx,] 

каждый id (с его повторными измерениями) будет происходить только те, в моем бутстраповской наборе данных. Я действительно хочу повторить наблюдения за id=k количеством раз, когда этот идентификатор встречается в b_idx. Как я могу это достичь?

ответ

0

Я использую функцию 'matches' из пакета grr для этого.

Indices <- unlist(matches(b.idx, data_xy$ID, list=TRUE)) 

b.data <- data_xy[Indices, ] 
0

Вам не нужно использовать идентификатор напрямую; Вы можете только выборочные номера строк, а затем непосредственно индексировать data.frame с теми:

# How many rows in the data.frame? 
n <- nrow(mtcars) 

# Sample them 
mtcars[sample(x = n, size = n, replace = TRUE), ] 

Если вы передаете в то же целое число в два раза, вы получите эту строку дважды. Вот пример этого принципа в действии:

mtcars[c(1, 1), ] 

Если вы не знаете, это уже, не забудьте проверить the boot package, который автоматизирует много сценариев начальной загрузки для вас.

 Смежные вопросы

  • Нет связанных вопросов^_^