циклический фильтр с несколькими столбцами с помощью R - PullRequest
0 голосов
/ 08 марта 2020

`

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
}

У меня есть кадр данных, как показано выше. Я применил этот l oop, который теперь возвращает только уникальные значения по продукту (например, фильтр по продукту) сейчас, что я хочу сделать, фильтр со столбцом из нескольких категорий, как не только для столбца продукта (например, фильтр по продукту, отрасли и региону), может кто угодно помогите мне, как сделать это с помощью l oop в R? этот код работает, но только для столбца продукта. Теперь я хочу фильтровать по нескольким столбцам. Как и ось X содержит дату, а ось Y содержит столбец TEMP, теперь я хочу фильтровать продукт и столбец x_1, показывая только указанную c запись для обоих фильтров.

1 Ответ

0 голосов
/ 08 марта 2020

Как то так?

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])
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...