Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 我需要找到一列中的值,给定另一列的三个最小值_R - Fatal编程技术网

R 我需要找到一列中的值,给定另一列的三个最小值

R 我需要找到一列中的值,给定另一列的三个最小值,r,R,我有一个数据集data1,我需要在一列pph中找到最小值,并找出它们在另一列状态(即第1列)中对应的值 这就是我所拥有的 data1[which.min(data1$pph), 1] 这给了我最小值以及它在第一列中对应的内容,但我不知道如何找到三个最大最小值以及它们对应的内容。这可以使用dplyr库中的slice_min()轻松完成 # making fake data data1 <- data.frame("pph" = c(1:10), "state&

我有一个数据集data1,我需要在一列pph中找到最小值,并找出它们在另一列状态(即第1列)中对应的值

这就是我所拥有的

data1[which.min(data1$pph), 1]

这给了我最小值以及它在第一列中对应的内容,但我不知道如何找到三个最大最小值以及它们对应的内容。

这可以使用dplyr库中的
slice_min()
轻松完成

# making fake data
data1 <- data.frame("pph" = c(1:10), "state" = c(rep(c(1,2),5)))

# find min 3 pph but only show state column
data1 %>% slice_min(pph, n = 3) %>% select(state)
#伪造数据
数据1%切片最小值(pph,n=3)%>%选择(状态)

如果需要,您还可以将dplyr管道的输出分配给变量。

这可以使用dplyr库中的
slice_min()
轻松完成

# making fake data
data1 <- data.frame("pph" = c(1:10), "state" = c(rep(c(1,2),5)))

# find min 3 pph but only show state column
data1 %>% slice_min(pph, n = 3) %>% select(state)
#伪造数据
数据1%切片最小值(pph,n=3)%>%选择(状态)

如果需要,还可以将dplyr管道的输出分配给变量。

使用
base
可以尝试

data1[order(data1$pph)[1:3],"state"]
library(data.table)
setDT(data1)
data1[order(pph)[1:3],"state"]#Here you actually call the three most minimum values 
使用
data.table
可以尝试

data1[order(data1$pph)[1:3],"state"]
library(data.table)
setDT(data1)
data1[order(pph)[1:3],"state"]#Here you actually call the three most minimum values 
或者类似地

data1[order(pph),"state"][1:3] #Here is like you filter the three most minimum values

使用
base
可以尝试

data1[order(data1$pph)[1:3],"state"]
library(data.table)
setDT(data1)
data1[order(pph)[1:3],"state"]#Here you actually call the three most minimum values 
使用
data.table
可以尝试

data1[order(data1$pph)[1:3],"state"]
library(data.table)
setDT(data1)
data1[order(pph)[1:3],"state"]#Here you actually call the three most minimum values 
或者类似地

data1[order(pph),"state"][1:3] #Here is like you filter the three most minimum values

我们可以使用
过滤器

library(dplyr)
data1 %>%
    filter(pph == min(pph)) 

我们可以使用
过滤器

library(dplyr)
data1 %>%
    filter(pph == min(pph)) 

尝试
which(data1$pph==min(data1$pph))
insteadTry
which(data1$pph==min(data1$pph))
insteadTry工作得很好!谢谢你的知识,没问题!祝你好运,编码快乐!:)工作得很好!谢谢你的知识,没问题!祝你好运,编码快乐!:)我不确定你是否能用这个方法得到三个最大最小值。我不确定你能用这个方法得到三个最大最小值。