对子集重复n次,并在R中绘图

对子集重复n次,并在R中绘图,r,function,loops,plot,repeat,R,Function,Loops,Plot,Repeat,首先感谢这个论坛,因为我找到了很多答案!! 现在是我寻求帮助的时候了。 我可以解决这个。。。。函数?,循环?。。。没有找到一个好的例子 # from a data.frame = data # A:F are name of columns x<-unique(data$A) # in the example c('var1','var2','var3','var4') y<-unique(data$B) # in the example c('varA','varB') z<

首先感谢这个论坛,因为我找到了很多答案!! 现在是我寻求帮助的时候了。 我可以解决这个。。。。函数?,循环?。。。没有找到一个好的例子

# from a data.frame = data
# A:F are name of columns

x<-unique(data$A) # in the example c('var1','var2','var3','var4')
y<-unique(data$B) # in the example c('varA','varB')
z<-unique(data$C) # in the example c('var1a','var2a')

# I NEED TO REPEAT THIS (based on x_y_z combinations)#
x_y_z<-subset(data,data$A==x & data$B==y & data$C==z)
plot_x_y<-qic(y=D
             ,n=E
             ,x=F  
             ,data=x_y_z
             ,chart = 'p')
很抱歉问了一个基本的问题,但我被这个问题难住了


Cristobal

考虑
by
哪些切片类似于
子集
,但允许在其
FUN
arg中进行数据帧操作。并使用打印列表,而不是许多单独命名的打印对象

plot_list <- by(data, data[, c("A","B","C")], FUN = function(df) {
     qic(y = D,n = E,x = F, data = df, chart = 'p')
})
plot\u您可以使用的列表
d1
plot_var1_varA_var1a
plot_var1_varB_var1a
plot_var1_varA_var2a
plot_var1_varB_var2a
plot_var2_varA_var1a
plot_var2_varB_var1a
plot_var2_varA_var2a
plot_var2_varB_var2a
plot_var3_varA_var1a
plot_var3_varB_var1a
plot_var3_varA_var2a
plot_var3_varB_var2a
plot_var4_varA_var1a
plot_var4_varB_var1a
plot_var4_varA_var2a
plot_var4_varB_var2a
plot_list <- by(data, data[, c("A","B","C")], FUN = function(df) {
     qic(y = D,n = E,x = F, data = df, chart = 'p')
})
dfnames <- expand.grid(x,y,z)

listnames <- vapply(1:nrow(dfnames), function(i) 
  paste(dfnames$Var1[[i]], dfnames$Var2[[i]], dfnames$Var3[[i]], sep="_"), character(1))
#   [1] "var1_varA_var1a" "var2_varA_var1a" "var3_varA_var1a" "var4_varA_var1a" "var1_varB_var1a"
#   [6] "var2_varB_var1a" "var3_varB_var1a" "var4_varB_var1a" "var1_varA_var2a" "var2_varA_var2a"
#  [11] "var3_varA_var2a" "var4_varA_var2a" "var1_varB_var2a" "var2_varB_var2a" "var3_varB_var2a"
#  [16] "var4_varB_var2a"

# RENAME LIST ELEMENTS
plot_list <- setNames(plot_list, paste0("plot_", listnames))

plot_list$plot_var1_varA_var1a      # FIRST PLOT
plot_list$plot_var2_varA_var1a      # SECOND PLOT
...