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}}
答案 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)