Итак, раньше я ответил на свой собственный вопрос о мышлении в векторах в Р. Но теперь у меня есть еще одна проблема, которую я не могу "векторизовать". Я знаю, что векторы быстрее и медленнее, но я не могу понять, как это сделать в векторном методе:
У меня есть кадр данных (который по сентиментальным причинам мне нравится называть my.data), на который я хочу сделать полный маргинальный анализ. Мне нужно удалить определенные элементы по одному и "значение" в кадре данных, тогда мне нужно снова выполнить итерацию, удалив только следующий элемент. Затем сделайте еще раз... и снова... Идея состоит в том, чтобы сделать полный маргинальный анализ подмножества моих данных. Во всяком случае, я не могу представить, как это сделать эффективным вектором.
Я сократил фрагмент кода, и он выглядит примерно так:
for (j in my.data$item[my.data$fixed==0]) { # <-- selects the items I want to loop
# through
my.data.it <- my.data[my.data$item!= j,] # <-- this kicks item j out of the list
sum.data <-aggregate(my.data.it, by=list(year), FUN=sum, na.rm=TRUE) #<-- do an
# aggregation
do(a.little.dance) && make(a.little.love) -> get.down(tonight) # <-- a little
# song and dance
delta <- (get.love) # <-- get some love
delta.list<-append(delta.list, delta, after=length(delta.list)) #<-- put my love
# in a vector
}
Так что, очевидно, я взломал кучу вещей посередине, чтобы сделать его менее неуклюжим. Целью было бы удаление j-цикла, используя что-то более эффективное вектор. Любые идеи?