[R] Getting minimum value of a column according a factor column of a dataframe

@vi@e@gross m@iii@g oii gm@ii@com @vi@e@gross m@iii@g oii gm@ii@com
Wed Aug 24 18:23:09 CEST 2022


Javad,

If I understood you, you want to use one of many methods to GROUP BY one
column and take the minimum within each group.

If your data is set up right, perhaps using factors, there are base R
versions but many would also suggest using dplyr/tidyverse methods such as
piping your data to group_by then to generating a report per group using the
function(s) you wish. 

In your case, if all four categories were found in your data, you would get
four output lines.

Note in a very low-tech way, if your problem is static and you know the
exact 4 values you want, you can simply make 4 subsets of your data directly
and apply your minimum calculation to each. If you have a situation with the
number of factors not being known in advance, more general methods that
dynamically do the grouping for you are needed.

-----Original Message-----
From: R-help <r-help-bounces using r-project.org> On Behalf Of javad bayat
Sent: Wednesday, August 24, 2022 3:45 AM
To: R-help using r-project.org
Subject: [R] Getting minimum value of a column according a factor column of
a dataframe

Dear all;
I am trying to get the minimum value of a column based on a factor column of
the same data frame. My data frame is like the below:
       Code               Y               M                D
 Q
     N              O
41003 81 1 19 0.16 7.17 2.5
41003 77 9 22 0.197 6.8 2.2
41003 79 7 28 0.21 4.7 6.2
41005 79 8 17 0.21 5.5 7.2
41005 80 10 30 0.21 6.84 2.6
41005 80 12 20 0.21 6.84 2.4
41005 79 6 14 0.217 5.61 3.55
41009 79 2 21 0.218 5.56 4.04
41009 79 5 27 0.218 6.4 3.12
41009 80 11 29 0.22 6.84 2.8
41009 78 5 28 0.232 6 3.2
41009 81 8 20 0.233 6.39 1.6
41009 79 9 30 0.24 5.6 7.5
41017 79 10 20 0.24 5.3 7.1
41017 80 7 30 0.24 6.73 2.6

I want to get the minimum value of the "Q" column with the whole row values,
according to the "Code"  column  which is a factor. Overall it will give me
4 rows, with the value of "Q". Below is a code that I used but it did not
give me what I wanted.

> x[which(x$Q == min(x$Q)),]

Sincerely



--
Best Regards
Javad Bayat
M.Sc. Environment Engineering
Alternative Mail: bayat194 using yahoo.com

	[[alternative HTML version deleted]]

______________________________________________
R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list