simples solution to subset max data with multiple condition passed

Related searches

I want to subset data from data frame with multiple conditions where one of them is max or min. Here is what i mean with use of mtcars:

mtcars[mtcars$qsec==max(mtcars$qsec),]

output is:

          mpg cyl  disp hp drat   wt qsec vs am gear carb
Merc 230 22.8   4 140.8 95 3.92 3.15 22.9  1  0    4    2

now I want to get fastest car (mtcars$qsec==max(mtcars$qsec)) but only from cars that have 5 gears or more:

mtcars[mtcars$gear>=5 & mtcars$qsec==max(mtcars$qsec),]

The output is empty table...

BEFORE YOU ANSWER: I can find a way to solve this by myself, for example doing this:

my_mtcars=mtcars[mtcars$gear>=5,]
my_mtcars[my_mtcars$qsec==max(my_mtcars$qsec),]

out:

              mpg cyl disp  hp drat    wt qsec vs am gear carb
Lotus Europa 30.4   4 95.1 113 3.77 1.513 16.9  1  1    5    2

However, in this particular situation code simplicity is most crucial factor for me. Can you propose any solution that can be done in one line of code and do not include anything more complex? Is this even possible?

You can use subset to filter multiple conditions.

subset(subset(mtcars, gear>=5), qsec==max(qsec))
#              mpg cyl disp  hp drat    wt qsec vs am gear carb
#Lotus Europa 30.4   4 95.1 113 3.77 1.513 16.9  1  1    5    2

subset(mtcars[mtcars$gear>=5,], qsec==max(qsec))
#              mpg cyl disp  hp drat    wt qsec vs am gear carb
#Lotus Europa 30.4   4 95.1 113 3.77 1.513 16.9  1  1    5    2

Or for many depending conditions you can use Reduce.

conditions <- alist(gear>=5, qsec==max(qsec))
Reduce(function(x,y) subset(x,eval(y)), conditions, mtcars)
#              mpg cyl disp  hp drat    wt qsec vs am gear carb
#Lotus Europa 30.4   4 95.1 113 3.77 1.513 16.9  1  1    5    2

Or storing where gear>=5 and using this to calculate max.

i <- mtcars$gear>=5
mtcars[i & mtcars$qsec==max(mtcars$qsec[i]),]
#              mpg cyl disp  hp drat    wt qsec vs am gear carb
#Lotus Europa 30.4   4 95.1 113 3.77 1.513 16.9  1  1    5    2

Or using which and which.max.

i <- which(mtcars$gear>=5)
mtcars[i[which.max(mtcars$qsec[i])],]
#              mpg cyl disp  hp drat    wt qsec vs am gear carb
#Lotus Europa 30.4   4 95.1 113 3.77 1.513 16.9  1  1    5    2

4 Subsetting, 24.2 Code organisation � 24.3 Checking for existing solutions Let's explore the different types of subsetting with a simple vector, x . df[df$x == 2, ] #> x y z #> 2 2 2 b df[c(1, 3), ] #> x y z #> 1 1 3 a #> 3 3 1 c # There are two ways to select columns from a data 4.5.7 Selecting rows based on a condition (logical subsetting). I have a data.frame in R. I want to try two different conditions on two different columns, but I want these conditions to be inclusive. Therefore, I would like to use "OR" to combine the conditions. I have used the following syntax before with a lot of success when I wanted to use the "AND" condition.

Here is another base R solution using order, i.e.,

res <- head(mtcars[order(mtcars$gear>=5,mtcars$qsec,decreasing = T),],1)

such that

> res
              mpg cyl disp  hp drat    wt qsec vs am gear carb
Lotus Europa 30.4   4 95.1 113 3.77 1.513 16.9  1  1    5    2

Selecting Subsets of Data in Pandas: Part 2 | by Ted Petrou, This is part two of a four-part series on how to select subsets of data from a pandas DataFrame or Series. multiple projects, and detailed solutions that will help you become an expert at pandas. Asking simple questions in plain English We can now pass this final criteria to just the indexing operator To solve the subset sum problem, use the same DP approach as given in subset sum problem. To further count the maximal subset, we use another DP array (called as ‘count array’) where count [i] [j] is maximal of. count [i] [j-1]. Here current element is not considered. count [i- X] [j-1] + 1.

There should be a number of ways. One can be,

filter(mtcars[mtcars$gear >= 5 ,], qsec == max(qsec))

#   mpg cyl disp  hp drat    wt qsec vs am gear carb
#  30.4   4 95.1 113 3.77 1.513 16.9  1  1    5    2

0-1 Knapsack Problem, From all such subsets, pick the maximum value subset. Optimal Sub-structure: To consider all subsets of items, there can be two cases for every� 2 simples solution to subset max data with multiple condition passed Jan 28 1 Loop inside loop (or preferably workaround) for monte carlo simulation Jan 20 '17 1 Vertical line at 99% point of my data in R (imitating confidence interval) Jan 26 '17

If you are willing to use a package, this is pretty simple.

The catch is that this will not keep row names. I never have row names so I consider this a decent solution, but if you do, you will have to account for that first (i.e., tibble::rownames_to_column()).

library(dplyr)

slice(filter(mtcars, gear >= 5), which.max(qsec))

Find the maximum subset XOR of a given set, Input: set[] = {2, 4, 5} Output: 7 The subset {2, 5} has maximum XOR value A Simple Solution is to generate all possible subsets of given set,� Essentially I have three different data frames. df1 contains all images with meta informations like file path, bounding box etc. df2 contains all the coordinates which I want to extract and df3 contains essentially references from every coordinate to the right image, and a fourth data frame df4 which stores the extracted values.

I am adding this as a separate answer because it may or may not be helpful depending on the use case. This has the same disclaimer about rownames being dropped.

You can make a fairly simple function to allow you to filter sequentially.

library(dplyr)
library(rlang)

filter_nested <- function(.data, ...) {

  dots <- enquos(...)

  for (current_filter in seq_along(dots)) {
    .data <- .data %>% 
      filter(!!dots[[current_filter]])
  }

  .data

}

When you apply this, it will go left to right from the input, applying the filter. So your code itself would be extremely simple.

filter_nested(mtcars, gear >= 5, qsec == max(qsec))

#    mpg cyl disp  hp drat    wt qsec vs am gear carb
# 1 30.4   4 95.1 113 3.77 1.513 16.9  1  1    5    2

If you wanted two criteria to be applied at the same time, you could combine them into a single criteria with &.

filter_nested(mtcars, gear >= 5 & hp > 150, qsec == max(qsec))

#    mpg cyl disp  hp drat   wt qsec vs am gear carb
# 1 19.7   6  145 175 3.62 2.77 15.5  0  1    5    6

Subset sum problem, In computer science, the subset sum problem is an important decision problem in complexity theory and cryptography. There are several equivalent formulations of the problem. To do that, the algorithm passes through the first array in decreasing order (starting at The array can now be filled in using a simple recursion. Practice : Subset with variable filter conditions. Data : “./Automobile Data Set/AutoDataset.csv” Create a new dataset for exclusively Toyota cars; Create a new dataset for all cars with city.mpg greater than 30 and engine size is less than 120. Create a new dataset by taking only sedan cars.

Getting a subset of a data structure Problem. You want to do get a subset of the elements of a vector, matrix, or data frame. Solution. To get a subset based on some conditional criterion, the subset() function or indexing using square brackets can be used. In the examples here, both ways are shown.

I am trying to create a subset w/ outliers removed for multiple variables (Outliers are defined as > 1.5 x Q3 and < Q1 / 1.5). My approach is to use multiple WHERE statements, but I am not getting the desired result. I am open to other approaches, but I'm also curious why this syntax is not working.

Part 3: Assigning subsets of data. This is part three of a four-part series on how to select subsets of data from a pandas DataFrame or Series. Pandas offers a wide variety of options for subset