在另一列上查找最小值列和最小值的相应行

时间:2018-06-02 06:31:48

标签: r

Min. Value

与我在此提出的问题相对应:Find minimum of a column with condition on another, for every observation in R

Value是与Key相对应的最小Min Value2我如何填写与Value2相对应的Min. Value {{1}}每个Key获得{1}}

1 个答案:

答案 0 :(得分:1)

您可以先为该组计算min,然后查找包含min值的行的行号,该值可用于获取Value2

使用dplyr的解决方案:

library(dplyr)

df %>% group_by(Key) %>%
  mutate(MinValue = min(Value)) %>%
  mutate(MinValue2 = Value2[which(Value==MinValue)[1]]) %>%
  as.data.frame()

#   Key Value Value2 MinValue MinValue2
# 1 1xA     1      2        1         2
# 2 2xA     2      3        2         3
# 3 3xB     3      1        2         2
# 4 1xB     1      1        1         1
# 5 1xA     5      5        1         2
# 6 2xB     2      6        2         6
# 7 3xB     2      2        2         2
# 8 2xA     4      1        2         3

数据:

df <- read.table(text = 
"Key        Value Value2      
1xA         1      2         
2xA         2      3         
3xB         3      1         
1xB         1      1         
1xA         5      5         
2xB         2      6         
3xB         2      2         
2xA         4      1",
header = TRUE, stringsAsFactors = FALSE)