如何获取R语言数据框中value2最小值对应的value1值
获取数据框中最小值对应的另一列值
嘿,我明白你想要的效果啦——已经知道value2的最小值是0.01,现在要拿到它对应的value1(也就是5)。这里有几种简单直接的方法可以实现:
首先先确认你的数据框创建代码是没问题的:
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)
方法1:用which.min()定位索引
这是最直接的方式,which.min()会返回value2中最小值所在的行索引,然后用这个索引提取对应的value1:
smallest_value1 <- df$value1[which.min(df$value2)] # 运行后smallest_value1的值就是5
这个方法的好处是,如果value2里有多个相同的最小值,它只会返回第一个最小值对应的value1。
方法2:用逻辑条件筛选
如果你想获取所有和最小值对应的value1(比如万一有多个相同最小值的情况),可以用逻辑判断来筛选:
smallest_value1 <- df$value1[df$value2 == min(df$value2)]
在你的例子里,结果同样是5;如果有多个行的value2都是0.01,这个代码会把所有对应的value1都提取出来。
两种方法都能轻松得到你想要的结果,根据你的实际需求选就行~
内容的提问来源于stack exchange,提问作者Ville
相关产品推荐
相关产品推荐

