2014-05-21 5 views
-1

나는 3 개의 벡터 (launch_2012, amount 및 one_week_bf)를 초기화하고 데이터 프레임을 생성하는 for-loop를 가지고있다. 그런 다음 일주일의 데이터를 예측하여 vector (amount 및 one_week_bf)에 삽입하고 data.frame을 다시 생성합니다. 이 과정은 8 번 반복됩니다. 그러나 새로운 금액을 업데이트하기 위해 data.frame을 가져올 수 없습니다. 누구든지 제발 도와 줄 수 있습니까?for-loop에서 값을 업데이트하는 방법은 무엇입니까?

for (i in 1:8) { 
    launch_2012 <- c(rep('bf', 5), 'launch', rep('af', 7)) 
    amount <- c(7946, 6641, 5975, 5378, 5217, NA, NA, NA, NA, NA, NA, NA, NA) 
    one_week_bf <- c(NA, 7946, 6641, 5975, 5378, 5217, NA, NA, NA, NA, NA, NA, NA) 
    newdata <- data.frame(amount = amount, one_week_bf = one_week_bf, launch = launch_2012, week = week) 
    predicted <- predict(model0a, newdata) 
    amount[i+5] <- predicted[i+5] 
    one_week_bf[i+6] <- predicted[i+5] 
    View(newdata) 
} 
+1

초기 벡터 outt for for loop! (재설정 할 때마다 값을 덮어 쓰거나 매번 값을 덮어 씁니다.) – Hugh

+0

안내에 감사드립니다! 참으로 그것이 문제였습니다. 함수를 편집하여 지구 환경에서 데이터 프레임을 반환 할 수 있도록 함수를 편집 할 수있는 방법을 알고 있습니까? –

+0

달성하려는 목표는 무엇입니까? 'model0a'는 무엇입니까? 나는 당신의 모범이 재현 가능하지 않거나 명확하지 않기 때문에 이것을 downvoted했습니다. 그래도 도와 ​​주시면 기쁘게 생각합니다. – Hugh

답변

0

그것은 당신의 예를 재현하지 않기 때문에 확실하지만, 기본적으로 predict.lm(...) 가지고 newdata의 모든 행이 어떤 NA는 기본적으로이 예측 NA 생성 값 즉, na.action=na.pass을 가지고 있습니다 어렵다. newdata의 첫 번째 패스는 행 6-13에서 NA이므로 predicted은 동일한 요소에 NA이됩니다. 즉, amountsone_week_bf은 해당 요소에 NA을 가지며, 차례로 매번 동일한 newdata을 생성합니다.

0

아무 것도 for 루프에 없어야합니다. 내가 model0a가 무엇을 아무 생각

x <- data.frame("launch_2012" = c(rep('bf', 5), 'launch', rep('af', 7)), 
       "amount"=c(7946, 6641, 5975, 5378, 5217, NA, NA, NA, NA, NA, NA, NA, NA), 
       "one_week_bf"=c(NA, 7946, 6641, 5975, 5378, 5217, NA, NA, NA, NA, NA, NA, NA)) 
x$new_amount <- #the replacement from your predict vector 
x$new_one_week_bf <- #the replacement from your predict vector 

주, 그래서 그냥 새로운 열이 결과 벡터가 예측 함수에서 무엇이든 같이해야한다 무엇을했다. 그러면 새 데이터가 새 열로 추가됩니다.

관련 문제