簡體   English   中英

通過 r 中的嵌套列表進行操作

[英]operate through nested lists in r

根據以下代碼,我有一個嵌套列表:

cat <- c("A","A","B","B")
prod <- c("prod1","prod2","prod3","prod4")
families <- as.data.frame(cat, prod)
categories <- with(families,split(as.character(prod), cat))
sales <- list()
for(a in prod){
  sales[[a]] <- runif(4)
}
sales <-  lapply(categories, function(x) sales[x])

我希望獲得每種產品在其類別中的銷售額比例。

proportion_product1 <- sum(sales$A$prod1)/(sum(sales$A$prod1)+sum(sales$A$prod2))

用一個函數試試這個方法:

#Function
myfun <- function(x)
{
  #Values
  y <- lapply(x,sum)
  z <- do.call(sum,y)
  #Compute
  a <- lapply(y,function(x) x/z)
  return(a)
}
#Apply
lapply(sales,myfun)

輸出:

$A
$A$prod1
[1] 0.6444069

$A$prod2
[1] 0.3555931


$B
$B$prod3
[1] 0.4644624

$B$prod4
[1] 0.5355376

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM