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

Ebert,Timothy Aaron tebert @end|ng |rom u||@edu
Wed Aug 24 18:16:20 CEST 2022


library(dplyr)
library(magrittr)
dat2<-read.table(text="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", header=TRUE)
dat3 <- dat2 %>%
  group_by(Code) %>%
  mutate(
    MinByCodeY = min(Y, na.rm = T),
  ) %>%
  arrange(Code)

This returns a dataframe with a new variable "MinByCodeY" which is the minimum value in Y for each group of Code where the minimum value within the group is added to each row of data in the original dataframe.

Tim

-----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

[External Email]

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://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-help&data=05%7C01%7Ctebert%40ufl.edu%7C9c40fa5f8b354251cf5c08da85e82878%7C0d4da0f84a314d76ace60a62331e1b84%7C0%7C0%7C637969529406639528%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=wRIHPCENQspDLjF9IbGTsyM1kJ5hYhIwfYuFSU9UFDM%3D&reserved=0
PLEASE do read the posting guide https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.r-project.org%2Fposting-guide.html&data=05%7C01%7Ctebert%40ufl.edu%7C9c40fa5f8b354251cf5c08da85e82878%7C0d4da0f84a314d76ace60a62331e1b84%7C0%7C0%7C637969529406639528%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=jthiGDRGroo5sh8snIDQHHGsWAndtxp5SCB7HvyhWg8%3D&reserved=0
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list