繁体   English   中英

使用 R 使用多列循环明智的过滤器

[英]looping wise filter with multiple column by using R

`

PRODUCT <-  c("A","A","A","D","D","D","D","C","C","C")

x_1 <- c("A1", "A1","A1", "B10", "B10", "B10","B10", "C100", "C100", "C100")

Date <-    c('2013-01-01','2013-01-02','2013-01-03','2013-01-04','2013-01-05','2013-01-06',    '2013-01-07','2013-01-08','2013-01-09','2013-01-10')
TEMP <- c(89,98,76,87,65,98,47,33,28,10)

df <- data.frame(Date, TEMP, PRODUCT,x_1)

for (i in unique(df$PRODUCT)) {   
  plot(df[df$PRODUCT==i, "Date"], df[df$PRODUCT==i, "TEMP"],
       xlab = "Date", ylab = "TEMP", # base the axes on full data range
       main = paste("Plot of", i))  # Give each a title
}

我有如上所示的数据框。 我应用了这个循环,它现在只返回产品明智的唯一值(例如过滤产品明智),我想用多个类别列过滤,例如不仅用于产品列(例如产品,分支和区域明智过滤器),任何人都可以帮助我如何通过在 R 中使用循环来做到这一点? 此代码有效但仅适用于产品列,现在我想使用多个列进行过滤。例如 X 轴包含日期,Y 轴包含 TEMP 列,现在我想过滤产品,而 x_1 列仅显示两个过滤器的特定记录。

像这样的东西?

cmbs <- expand.grid(unique(PRODUCT), unique(x_1)) # Creates unique combinations

for (i in 1:n){
  x <- df[df$PRODUCT==cmbs[i,1] & df$x_1==cmbs[i,2], "Date"]
  y <- df[df$PRODUCT==cmbs[i,1] & df$x_1==cmbs[i,2], "TEMP"]
  if(length(x)!=0 & length(y)!=0) {
    plot(x, y,
       xlab = "Date", ylab = "TEMP", 
       main = paste("Plot of", cmbs[i,1], "and", cmbs[i,2])
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM