【发布时间】:2018-08-11 23:22:02
【问题描述】:
我有一个名为“权重”的数据集,我想知道编写以下代码的最有效方法是什么:
library(d3treeR)
library(treemap)
library(dplyr)
myfun <- function(x){
x <- weights %>% filter(Region %in% x)
}
CAN<-myfun("Canada")
ON<-myfun("Ontario")
NL<-myfun("Newfoundland and Labrador")
PE<-myfun("Prince Edward Island")
NS<-myfun("Nova Scotia")
NB<-myfun("New Brunswick")
QC<-myfun("Quebec")
CAN=treemap(CAN, index=c("Level.0","Level.1"), vSize="X2015", type="index")
ON=treemap(ON, index=c("Level.0","Level.1"), vSize="X2015", type="index")
NL=treemap(NL, index=c("Level.0","Level.1"), vSize="X2015", type="index")
PE=treemap(PE, index=c("Level.0","Level.1"), vSize="X2015", type="index")
NS=treemap(NS, index=c("Level.0","Level.1"), vSize="X2015", type="index")
NB=treemap(NB, index=c("Level.0","Level.1"), vSize="X2015", type="index")
QC=treemap(QC, index=c("Level.0","Level.1"), vSize="X2015", type="index")
谢谢。我一直在尝试使用带有 unique(weights$Region) 的 for 循环来填充这 7 个数据帧。
【问题讨论】:
-
您能分享一份reproducible 的数据副本吗?
-
如果这 7 个区域是所有区域,您可以使用
split()将您的数据框切割成更小的数据框(每个更小的数据框都存储为一个列表元素)。然后你可以lapply()你的treemap变量到每个: -
感谢 Dan,效果很好!