2014-10-02 3 views
0

Я пишу цикл в r, сообщение об ошибке исходит из последней строки: «Ошибка в match.names (clabs, names (xi)): имена не соответствуют предыдущим именам " Последняя строка пытается сохранить каждое значение строки для каждого цикла. Всем спасибо.Как добавить каждую строку в предыдущую строку в цикле R

a = 20 # resample times 
for (id in unique_index){ 

    jeep_id <- jeep_boot[which(jeep$index == id),] 

    #sample_size is 0.8 of the whole data 
    sample_size <- floor((0.8)*length(jeep_id$PR)) 

    #bootstrap sample means 
    samplemeans = rep(NA, a) 

    for (i in 1:a) { 

    bootsample.i = sample(jeep_id$PR, sample_size, replace=T) 
    samplemeans[i] = mean(bootsample.i) 

    } 
    #combine mean of 20 sample means and stand dieviation of sample means to be one row 
    bootresult_id <- cbind(id, mean(samplemeans), sd(samplemeans)) 
    #retain every row value for each round looping 
    bootresult <- rbind(bootresult, bootresult_id) 
} 
+0

Просьба рассмотреть возможность предоставления некоторых примерных данных (и, возможно, ожидаемого результата) для работы. Сделав это, вы получите больше ответов. Я могу создать пример данных для его проверки. Но он не может имитировать фактический набор данных, который у вас есть. – akrun

ответ

0

Что в bootresult, прежде чем начать цикл for (id in unique_index)? Эта часть не была ясна для меня, и, может быть, это зависит от того, как вы объявляете его на первое место

Alternativo решение это объявить его как

bootresult <- matrix(nrow = length(unique_index), ncol=3) 

и заменить последнюю строку с

bootresult[id, ] <- bootresult_id 

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

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