Я выполняю цикл, который запускает линейную регрессию на 130 различных фреймах данных в информации о продажах в сравнении со списком переменных для разных городов в течение двухлетнего еженедельного периода времени.Есть города с нулевыми значениями, и это потому, что в то время не было продаж, потому что в то время у нас не было мест в этом городе.Я хотел бы только посмотреть на значения в фрейме данных, которые имеют значения продаж (! = 0,> 0).
Я попытался с помощью функции index <- 1:n[td$sales!=0]
экстраполировать значения и затем запустить lm.
lmresults <- NULL
lm <- list()
models <- list()
#datalist is a list that stores 130 dataframes of the city information
for ( i in 1:length(datalist) ) {
td <- as.data.frame(datalist[i])
n <- length(td$sales)
#function I am trying to resolve
index <- 1:n[td$sales!=0]
td2 <- td[index]
m <- lm(sales ~ . -Period.1, data=td2)
iter <- i
Nat.pVal <- summary(m)$coefficients[,"Pr(>|t|)"][14]
Loc.pVal <- summary(m)$coefficients[,"Pr(>|t|)"][15]
Nat.coeff <- coef(m)["National.Media"]
Loc.coeff <- coef(m)["local"]
temp <- data.table(cbind(Nat.pVal, Loc.pVal,iter,Nat.coeff,Loc.coeff))
lmresults <- rbind(lmresults, temp)
lm[[i]] <- summary(m)
models[[i]] <- m
}
Что я наблюдаю: Error in `[.data.frame`(td, index) : undefined columns selected
In addition: Warning message:
In 1:n[td$sales != 0] :
numerical expression has 104 elements: only the first used
Может ли кто-нибудь помочь мне заставить эту функцию работать и / или предоставить варианты, которые работают?Thnx!