Цикл For создает только один набор данных - PullRequest
0 голосов
/ 30 апреля 2018

Я надеюсь, что вы можете мне помочь. В настоящее время я пытаюсь загрузить и создать несколько наборов данных, используя цикл for. Цикл должен загружать разные наборы данных в общей сложности для 62 категорий. Тем не менее, он на самом деле не заменяет X числами, а только создает набор данных X.

Я надеюсь, что смог объяснить свои проблемы. Вот мой код:

##### Defining brands and START LOOP ####
for(X in c("8", "34", "35", "39", "44", "48", "49", "50", "51", "52", "53", "54", "55", "56", "120", "134", "138", "181", "182", "187", "190", "192", "199", "200", "205", "212", "215", "271", "274", "279", "329", "330", "331", "332", "333", "334", "335", "344", "345", "346", "349", "350", "351", "371", "372", "410", "411", "412", "413", "414", "418", "429", "443", "444", "455", "456", "527", "528", "529", "530", "534", "559")){

#Display
DisplayX <- read_excel("~/Master Studium/Thesis/IRI/displayOnly/DisplayOnly_Category8.xlsx")
DisplayX <- transpose(DisplayX)
DisplayX <- DisplayX[-c(1), ]
DisplayX$V1 <- NULL
DisplayX$Week <- as.matrix(c(1:208))

#sales
SalesX <- read_excel("~/Master Studium/Thesis/IRI/volumeSales/volumeSales_Category8.xlsx")
SalesX <- transpose(SalesX)
SalesX <- SalesX[-c(1), ]
SalesX$V1 <- NULL
SalesX$Week <- as.matrix(c(1:208))

#price
PriceX <- read_excel("~/Master Studium/Thesis/IRI/price/Price_Category8.xlsx")
PriceX <- transpose(PriceX)
PriceX <- PriceX[-c(1), ]
PriceX$V1 <- NULL
PriceX$Week <- as.matrix(c(1:208))

#advertising
AdvertisingX <- read_excel("~/Master Studium/Thesis/IRI/advertising/Advertising_Category8.xlsx")
AdvertisingX <- transpose(AdvertisingX)
AdvertisingX <- AdvertisingX[-c(1), ]
AdvertisingX$V1 <- NULL
AdvertisingX$Week <- as.matrix(c(1:208))

#importing brand 1 into a dataframe 
CategoryXa <- as.matrix(c(1:208))
CategoryXa <- as.data.frame(CategoryXa)
names(CategoryXa)[names(CategoryXa)=="V1"] <- "Week"
CategoryXa$Category <- X
CategoryXa$Brand <- 2
CategoryXa$Display <- DisplayX$V2
CategoryXa$Sales <- SalesX$V2
CategoryXa$Price <- PriceX$V2
CategoryXa$Advertising <- AdvertisingX$V2

#importing brand 2 into a dataframe 
CategoryXb <- as.matrix(c(1:208))
CategoryXb <- as.data.frame(CategoryXb)
names(CategoryXb)[names(CategoryXb)=="V1"] <- "Week"
CategoryXb$Category <- X
CategoryXb$Brand <- 3
CategoryXb$Display <- DisplayX$V3
CategoryXb$Sales <- SalesX$V3
CategoryXb$Price <- PriceX$V3
CategoryXb$Advertising <- AdvertisingX$V3

#importing brand 3 into a dataframe
CategoryXc <- as.matrix(c(1:208))
CategoryXc <- as.data.frame(CategoryXc)
names(CategoryXc)[names(CategoryXc)=="V1"] <- "Week"
CategoryXc$Category <- X
CategoryXc$Brand <- 4
CategoryXc$Display <- DisplayX$V4
CategoryXc$Sales <- SalesX$V4
CategoryXc$Price <- PriceX$V4
CategoryXc$Advertising <- AdvertisingX$V4

CategoryX <- rbind(CategoryXa, CategoryXb, CategoryXc) 
}

Таким образом, вместо наборов данных Category8, Category34, Category35 и т. Д., Я получаю только CategoryX.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 30 апреля 2018

Вот краткий пример того, как определить новые переменные внутри цикла:

for (i in 1:10) {
  assign(paste("newVar",i,sep=""), i, envir = .GlobalEnv)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...