Я пытаюсь переименовать добавленную «колонку» в несколько списков, которые встроены в больший список.
Например,
data<- data.frame(
ID = c(10,20,20,20,20,30,30),
Sales = c(50,40,45,40,40,40,50),
Distribution = c(2,4,5,5,4,4,5)
)
Сначала я создаю свой список списков, используя split.
SplitData <- split(data,data$ID)
Вот как выглядят мои данные при вызове SplitData.
‘10’
Sales 50
Distribution 2
‘20’
Sales 40,45,40,40
Distribution 4,5,5,4
‘30’
Sales 40,50
Distribution 4,5
Затем я написал функцию для разделения двух переменных в своих списках, но я не могу понять, как (i[, "Sales"] / i[, "Distribution"])
может выглядеть как «AjustedSale».
AjustedDis <- function(i){ cbind(i[,],(i[, "Sales"] / i[, "Distribution"]))}
SplitData2 <- lapply(SplitData[1:length(SplitData)], AjustedDis)
Вот что происходит, когда я вызываю SplitData2.
‘10’
Sales 50
Distribution 2
(i[, "Sales"] / i[, "Distribution"]) 25
‘20’
Sales 40,45,40,40
Distribution 4,5,5,4
(i[, "Sales"] / i[, "Distribution"]) 10,9,8,10
‘30’
Sales 40,50
Distribution 4,5
(i[, "Sales"] / i[, "Distribution"]) 10,10
Я пробовал это:
division<-function(i){(i[, "Sales"] / i[, "DisIndex"])}
AjustedSales<-lapply(SplitData[],division)
AjustedDisV2<-function(i){ cbind(i[,],AjustedSales[,])}
SplitData3<-lapply(SplitData[1:length(SplitData)], AjustedDisV2)
но это не дает мне того, что я ожидаю.