R 求一列的最小值和另一列上条件为最小值的对应行
针对我在本报告中提出的问题:R 求一列的最小值和另一列上条件为最小值的对应行,r,R,针对我在本报告中提出的问题: 列Min.Value是每个Key对应的最小Value我怎样才能同时填充Min.Value 2,它将是每个Key所获得的Min.Value对应的Value 2?您可以首先为组计算Min,并查找行号包含可用于获取Value2的min值的行的 使用dplyr的解决方案: Key Value Value2 Min Value Min Value2 1xA 1 2 1 2 2xA
列
Min.Value
是每个Key
对应的最小Value
我怎样才能同时填充Min.Value 2
,它将是每个Key所获得的Min.Value
对应的Value 2
?您可以首先为组计算Min
,并查找行号包含可用于获取Value2
的min
值的行的
使用dplyr的解决方案:
Key Value Value2 Min Value Min Value2
1xA 1 2 1 2
2xA 2 3 2 3
3xB 3 1 2 2
1xB 1 1 1 1
1xA 5 5 1 2
2xB 2 6 2 6
3xB 2 2 2 2
2xA 4 1 2 3
数据:
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根据上一个问题的答案,您尝试了什么?df%groupby(Key)%%>%mutate(“Min Value”=Min(Value))
这完全解决了我的问题。
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)