Как использовать пример функции для начальной загрузки в R? Проблема с заменой строк - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь создать загрузчик для фрейма данных 'ev_all_clean'

set.seed(1315)
boot_s <- as.data.frame(matrix(NA, ncol = 19, nrow = 1000))
for(k in 1:19){
  for(l in 1:1000){
  boot_s[l,k]<- sample(ev_all_clean[,k], size=1, replace=T)
  }
}

Приведенный выше код возвращает

replacement element 1 has 768 rows to replace 1 rows

Помощь очень ценится! Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

После того, как вы получите исходный фрейм данных boot_s, чтобы получить свой первый загрузчик, вы можете выполнить

# first prepare a dataframe of the same shape as your original
samplemat=boot_s 
# then perform bootstrap for each column separately
for(k in 1:19){
  samplemat[,k] = boot_s[sample(1:nrow(boot_s),nrow(boot_s),T),k]
}

образец, подготовив вектор индексов строк, которые будут храниться в вашем загрузочном образце. Вам придется делать это для каждой операции начальной загрузки, которую вы хотите (вы захотите много).

0 голосов
/ 26 октября 2019

Я только что создал пустышку ev_all_clean на основе предоставленной вами спецификации и посмотрите, может ли это помочь вам начать.

boot_s <- as.data.frame(matrix(NA, ncol = 19, nrow = 1000))
for(k in 1:19){
  for(l in 1:1000){
    boot_s[[l,k]]<- sample(ev_all_clean[,k], size=1, replace=TRUE)
  }
}

Небольшое объяснение того, что делает скрипт:

ev_all_clean[,k] - циклически перебирает отдельный столбец и элемент sample 1 с заменой, и этот единственный элемент будетиспользуется заменить значение на boot_s[[l,k]]. Вы можете прочитать о разнице между [ и [[ здесь .

Поскольку вы отбираете один элемент, вы, вероятно, захотите заменить один элемент, и именно об этом вам и сообщает сообщение об ошибке - я думаю.

...