重命名R中列表列表中的一列

时间:2018-06-26 20:15:28

标签: r list rename

我正在尝试将添加的“列”重命名为更大列表中嵌入的多个列表。

例如,

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)

但是它并不能满足我的期望。

0 个答案:

没有答案