我有这个简单的代码,它创建了一个数据框:
value1=matrix(c(1,2,3,4,5,6,7), ncol=1)
value2=matrix(c(0.1, 0.2, 0.4, 0.5, 0.01, 0.6, 0.7), ncol=1)
df=data.frame(value1, value2)
min(df$value2)
以下是数据框:
value1 value2
1 1 0.10
2 2 0.20
3 3 0.40
4 4 0.50
5 5 0.01
6 6 0.60
7 7 0.70
我想找到value1
,其中value2
是最小的。例如。这里最小的value2
是0.01
。对于此值(0.01),value1
为5。
我试图得到这样的东西:
smallest_value1=5
。
我只能找到value2
的最小值:min(df$value2)
,但我不知道如何将其与value1
联系起来。
我真的很感激任何建议。
答案 0 :(得分:3)
这似乎是一项工作:
- ----. .----------. .---- - .---- -
filesrc | avidemux | | vpudec | imxg2dsink
src -> sink src -> sink src -> sink
- ----' '----------' '---- - '---- -
答案 1 :(得分:3)
其他选项包括which.min:
df$value1[which.min(df$value2)]
并使用dplyr语法:
library(tidyverse)
df %>% filter(value2 == min(value2)) %>% select(value1)
答案 2 :(得分:2)
试试这个
library(dplyr)
df %>%
filter(value2==min(value2)) %>%
mutate(smallest_value1=value1) %>%
select(smallest_value1)
输出
# A tibble: 1 x 1
# smallest_value1
# <int>
# 1 5