Let me assume that I have an R data frame with 3 columns A , B ,>
and C , where A values are not all separate.
How do I get all the values of A, the value of C for which B is minimum (for that value of A)? In some pseudo SQL code this happens: SELECT C WHERE B = MIN (B) GROUPBY A
?
I've looked at the total ()
function, I'm not sure it can complete it.
Total (B ~ A, Data = MyDataFrame, Minute)
Only gives me the minimum score of B for each A, but then I do not know how to get related C value for.
In order to achieve the values, this is to minimize the data frame with the result of this aggregation, and / or it can only be done in gross ()
?
Input:
ABC 1 0 1 1 2 2 1 1 3 1 1 4 2 1 1 2 2 2 3 3 3 3 4
Output:
11a The value of the value is A = 1
3 for C (0) A value of C is equal to 2
data.table package:
Library (data-worthy) DT from the Lt; - as.data.table (mydataframe) dt [, c [which.min (b)], by = "a"] # a v1 # 1: 1 1 # 2: 2 3
or dplyr
:
library (dplyr) mydataframe%.% Group_by (a)%.% Summarize (res = c [that.min (b) ]) # A res # 1 2 3 # 2 1 1
or by the original function by
:
(mydataframe, Mydataframe $ a, function (x) x $ c [that.min (x) $ b)]) #mydataframe $ a: 1 # [1] 1 # --------------- ------------------ -------------------------------- -------------- # mydataframe $ A: 2 # [1] 3