Переименовать столбец в списке списков в R - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь переименовать добавленную «колонку» в несколько списков, которые встроены в больший список.

Например,

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)

но это не дает мне того, что я ожидаю.

...