首页 > 解决方案 > 循环遍历多变量子集

问题描述

我有一个大型数据框,我想按年份和 ID 对其进行子集化,因此我可以为各个年份绘制每个单独的 ID。这是我最近的一次尝试,但它只输出了一年和一个ID:

yearloop<-unique(set$year)                 
for(m in 1:length(yearloop)){
  set_1<-subset(set,year==yearloop[m])
  IDloop<-unique(unlist(set_1$ID))
  for(c in 1:length(IDloop)){
    set_2<-subset(set_1,ID==IDloop[c])

有任何想法吗?

标签: rloopssubset

解决方案


split(mtcars, list(mtcars$vs, mtcars$am))

或与您的数据:split(set, list(set$year,set$id))

如果您需要为数据框的不同子集绘图,您甚至可能不需要拆分数据,您也可以使用 ggplot 并对绘图进行分面,如下所示:

library(ggplot2)
ggplot(mtcars, aes(mpg, wt)) + geom_point() + facet_grid (~ vs + am)

推荐阅读